Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puedes crear y usar entidades de seguridad de servidor de Microsoft Entra ID (anteriormente Azure Active Directory) como inicios de sesión en la base de datos virtual master de un pool SQL dedicado de Azure Synapse Analytics.
Nota:
Las entidades de seguridad de servidor de Microsoft Entra están actualmente en vista previa para Azure Synapse Analytics.
Existen varios beneficios al utilizar entidades de seguridad de servidor de Microsoft Entra con un pool SQL dedicado:
- Admitir roles de servidor para la gestión de permisos.
- Admite múltiples usuarios de Microsoft Entra con roles especiales para Azure Synapse Analytics, como los roles
loginmanagerydbmanager. - Paridad funcional entre inicios de sesión de SQL e inicios de sesión de Microsoft Entra.
- Aumentar el soporte para mejoras funcionales, por ejemplo, mediante el uso de autenticación solo de Microsoft Entra. La autenticación solo de Microsoft Entra te permite desactivar la autenticación SQL, que incluye el administrador del servidor SQL, los inicios de sesión de SQL y los usuarios.
- Use los inicios de sesión de entidad de servicio de Microsoft Entra con roles especiales para automatizar por completo la creación y el mantenimiento de usuarios y bases de datos mediante aplicaciones de Microsoft Entra.
Para más información, consulte Autenticación de Microsoft Entra para Azure Synapse Analytics.
Permissions
Para usar o crear inicios de sesión de Microsoft Entra en la base de datos virtualmaster, necesitas los siguientes permisos:
- Permiso de administrador de Microsoft Entra o pertenencia al rol de servidor
loginmanager. Solo el administrador de Microsoft Entra puede crear el primer inicio de sesión de Microsoft Entra. - Debe ser miembro de Microsoft Entra ID dentro del mismo directorio que utiliza Azure Synapse Analytics.
De manera predeterminada, los inicios de sesión de Microsoft Entra recién creado en la base de datos master reciben el permiso VER TODAS LAS BASES DE DATOS.
Sintaxis de las entidades de seguridad de Microsoft Entra
Utilice la siguiente sintaxis para crear y administrar entidades de seguridad del servidor y de la base de datos de Microsoft Entra.
Crear cuenta
Esta sintaxis crea un inicio de sesión de nivel de servidor basado en una identidad de Microsoft Entra. Solo el administrador de Microsoft Entra puede ejecutar este comando en la base de datos virtualmaster.
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
El login_name especifica el principal de Microsoft Entra, es decir, un usuario, grupo o aplicación de Microsoft Entra.
Para obtener más información, consulte CREATE LOGIN (Transact-SQL).
Creación de un usuario a partir del inicio de sesión
La siguiente sintaxis de T-SQL crea una entidad de seguridad de Microsoft Entra en el nivel de la base de datos, asignada a un inicio de sesión de Microsoft Entra, en la base de datos virtual master. Al igual que en la sintaxis para crear un usuario contenido de Microsoft Entra en la base de datos, la única diferencia es especificar FROM LOGIN [login_name] en lugar de FROM EXTERNAL PROVIDER.
Para crear un usuario de Microsoft Entra a partir del inicio de sesión de Microsoft Entra, use la sintaxis siguiente.
CREATE USER [user_name] FROM LOGIN [login_name]
Puede usar la columna SID de sys.database_principals para distinguir entre un usuario de base de datos independiente de Microsoft Entra y un usuario de Microsoft Entra creado a partir de un inicio de sesión. Para un usuario de base de datos independiente, SID es una cadena binaria de longitud 16. Para un usuario que inicia sesión, el SID tiene una longitud de 18 con el sufijo AADE.
Nota:
Añadir el AADE sufijo al SID es la forma en que identificas a un usuario de Microsoft Entra como creado a partir de un inicio de sesión. Sin embargo, esto también significa que los SID para el inicio de sesión y sus usuarios no coinciden entre sys.server_principals y sys.database_principals. Para correlacionar al usuario con su inicio de sesión, primero debes eliminar el AADE sufijo.
Para comprender la diferencia conceptual entre los usuarios basados en inicio de sesión y los usuarios de bases de datos independientes, vea Usuarios de base de datos independiente.
Para obtener más información sobre toda la sintaxis de creación de usuarios, vea CREATE USER (Transact-SQL).
Desactiva o activa un inicio de sesión usando ALTER LOGIN
Utiliza la sintaxis DDL ALTER LOGIN (Transact-SQL) para habilitar o desactivar un inicio de sesión Microsoft Entra en un pool SQL dedicado Azure Synapse Analytics.
ALTER LOGIN [login_name] DISABLE
Cuando desactivas un inicio de sesión, la entidad de seguridad del servidor ya no puede conectarse. Desactivar un inicio de sesión también impide que todas las entidades de seguridad de base de datos (usuarios) que creaste a partir de ese inicio de sesión se conecten a sus respectivas bases de datos.
Nota:
ALTER LOGIN login_name DISABLENo pueden afectar a los usuarios de bases de datos contenidas , porque no están asociados con los inicios de sesión.ALTER LOGIN login_name DISABLEno está soportado para grupos de Microsoft Entra.Un inicio de sesión individual deshabilitado no puede pertenecer a un usuario que forme parte de un grupo de inicio de sesión que tú creaste en la base de datos
master(por ejemplo, un grupo de administradores de Microsoft Entra).Para que los cambios de
DISABLEoENABLEsurtan efecto inmediatamente, borra la caché de autenticación y la caché deTokenAndPermUserStoreutilizando los siguientes comandos T-SQL:DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Limitaciones y comentarios
- El administrador del servidor SQL Server no puede crear inicios de sesión de Microsoft Entra ni usuarios en ninguna base de datos.
- Los pools SQL dedicados en los espacios de trabajo de Azure Synapse Analytics no usan servidores SQL lógicos.
- Un administrador o usuario de SQL no puede ejecutar las siguientes operaciones de Microsoft Entra:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDERCREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDEREXECUTE AS USER [bob@contoso.com]ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
- La suplantación de entidades de seguridad del servidor (inicios de sesión) de Microsoft Entra no es compatible con Azure Synapse Analytics:
- EXECUTE AS (cláusula de Transact-SQL)
- EJECUTAR COMO (Transact-SQL)
- Se soporta la suplantación de las entidades de seguridad de base de datos de Microsoft Entra (usuarios) en una base de datos de usuarios.
- Los inicios de sesión de Microsoft Entra no pueden coincidir con los del administrador de Microsoft Entra. El administrador de Microsoft Entra tiene prioridad sobre cualquier inicio de sesión. Si una cuenta de Microsoft Entra ya tiene acceso al servidor como administrador de Microsoft Entra, ya sea individualmente o como parte de un grupo, cualquier inicio de sesión creado para este usuario no tendrá ningún efecto. Sin embargo, la creación del inicio de sesión no se bloquea mediante T-SQL. Después de que la cuenta se autentica en el servidor, el inicio de sesión tiene los permisos efectivos de un administrador de Microsoft Entra, y no de un inicio de sesión recién creado.
- No se permite cambiar permisos en un objeto de inicio de sesión específico de Microsoft Entra:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- Cuando cambias los permisos para un inicio de sesión de Microsoft Entra, por defecto los cambios solo entran en vigor la próxima vez que el inicio de sesión se conecte al pool SQL dedicado. Las conexiones abiertas existentes con el inicio de sesión no se ven afectadas. Para forzar que los cambios de permisos surtan efecto inmediato, puede borrar manualmente la autenticación y TokenAndPermUserStore, como se describe anteriormente en Deshabilitar o habilitar un inicio de sesión mediante ALTER LOGIN. Este comportamiento también se aplica al realizar cambios de pertenencia a roles de servidor con ALTER SERVER ROLE.
- En SQL Server Management Studio, el comando de scripting para crear un usuario no comprueba si ya existe un inicio de sesión de Microsoft Entra con el mismo nombre en
master. Siempre genera el código T-SQL para un usuario de Microsoft Entra para una base de datos independiente. - Si intentas crear un inicio de sesión o un usuario a partir de una entidad de servicio con un nombre para mostrar que no es único, podría producirse un error. Para más información sobre cómo mitigar este error, véase Consideraciones sobre el nombre.
- Los usuarios de bases de datos creados mediante inicios de sesión de Microsoft Entra pueden experimentar retrasos al recibir roles y permisos. Si te encuentras con este problema, usa los siguientes comandos:
- Elimine al usuario de la base de datos.
- Ejecute
DBCC FREESYSTEMCACHE('TokenAndPermUserStore')para borrar las memorias caché de seguridad en la base de datos. - Ejecute
DBCC FLUSHAUTHCACHEpara borrar la caché de contexto de autenticación federada. - Cree el usuario en función del inicio de sesión.
Limitaciones de las entidades de seguridad del servidor de grupos de Microsoft Entra
Las siguientes limitaciones se aplican a los inicios de sesión de grupos de Microsoft Entra en Azure Synapse Analytics:
- Los roles de servidor no están soportados para los grupos de Microsoft Entra.
- Si tu administrador SQL es un grupo de Microsoft Entra, los usuarios de ese grupo se encuentran con algunas limitaciones al conectarse. Cada usuario de Microsoft Entra no aparece individualmente en la
sys.server_principalstabla. Esta limitación tiene varias consecuencias, incluyendo llamadas aSUSER_SIDque devuelvenNULL. - Los inicios de sesión de usuario de Microsoft Entra que forman parte de los grupos de Microsoft Entra no se crean de forma implícita. Estos usuarios no tienen un esquema predeterminado y no pueden realizar operaciones como
CREATE SCHEMAhasta que crees un inicio de sesión para el usuario de Microsoft Entra o asignes un esquema por defecto al grupo. - No puedes cambiar la propiedad de una base de datos a un grupo de Microsoft Entra como propietario de la base de datos.
ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group]falla con el mensaje de error:Msg 33181, Level 16, State 1, Line 4 The new owner cannot be Azure Active Directory group.