Saltar al contenido
DBAExperts
SQL Server Usuarios y permisos

Cómo crear un login, usuario y otorgar permisos en SQL Server (GRANT)

En SQL Server el acceso tiene dos niveles: el login vive en el servidor y el usuario vive en la base de datos. Aqui los creas y otorgas permisos minimos.

  1. 1

    Crea el login a nivel servidor

    Puede ser autenticacion SQL (con contrasena) o de Windows/Azure AD. Prefiere autenticacion integrada cuando se pueda.

    -- Autenticacion SQL
    CREATE LOGIN [app_user] WITH PASSWORD = N'UnaClaveFuerte#2026',
         CHECK_POLICY = ON;
    
    -- Autenticacion de Windows
    -- CREATE LOGIN [DOMINIO\usuario] FROM WINDOWS;
  2. 2

    Crea el usuario dentro de la base

    El usuario mapea al login dentro de una base especifica. Sin este paso, el login no puede tocar la base.

    USE [MiBase];
    GO
    CREATE USER [app_user] FOR LOGIN [app_user];
  3. 3

    Otorga permisos minimos (principio de menor privilegio)

    Da solo lo necesario. Evita agregar a db_owner por comodidad. GRANT sobre objetos o esquemas es mas seguro que roles amplios.

    -- Permisos de lectura/escritura por rol
    ALTER ROLE db_datareader ADD MEMBER [app_user];
    ALTER ROLE db_datawriter ADD MEMBER [app_user];
    
    -- O permisos granulares
    GRANT SELECT, INSERT, UPDATE ON SCHEMA::dbo TO [app_user];
    GRANT EXECUTE ON OBJECT::dbo.usp_MiProc TO [app_user];
  4. 4

    Verifica los permisos otorgados

    Consulta los permisos efectivos del usuario para confirmar que quedo como esperabas.

    SELECT dp.name AS principal, p.permission_name, p.state_desc
    FROM sys.database_permissions p
    JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
    WHERE dp.name = 'app_user';

// el error común

Un usuario sin login mapeado queda 'huerfano' tras restaurar en otro servidor. Se arregla con ALTER USER [app_user] WITH LOGIN = [app_user]. Nunca uses la cuenta sa para aplicaciones ni des db_owner por default: es la causa numero uno de escalada de privilegios.

// cuándo conviene un experto

Si manejas muchos accesos, auditorias o cumplimiento (PCI, ISO), definir un modelo de permisos limpio es delicado. En dba.mx diseñamos esquemas de seguridad con menor privilegio y auditoria, con techo cerrado.

Agenda un Escaneo — desde USD $550

Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.