Entidades de seguridad de servidor de Microsoft Entra
Se aplica a: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics (solo grupos de SQL dedicados)
Ahora puede crear y usar entidades de seguridad de servidor de Microsoft Entra ID (anteriormente, Azure Active Directory), que son inicios de sesión en la base de datos master
virtual de base de datos de Azure SQL (versión preliminar) y Azure SQL Managed Instance.
Nota:
Las entidades de seguridad del servidor (inicios de sesión) de Microsoft Entra están actualmente en versión preliminar pública para Azure SQL Database y Azure Synapse Analytics. Los inicios de sesión de Microsoft Entra están disponibles con carácter general para Azure SQL Managed Instance y SQL Server 2022.
Hay varias ventajas derivadas de usar entidades de seguridad de servidor de Microsoft Entra para su recurso de Azure SQL:
- Admite Roles del servidor de Azure SQL Database para la administración de permisos.
- Admite varios usuarios de Microsoft Entra con roles especiales para SQL Database, como los roles
loginmanager
ydbmanager
. - Paridad funcional entre inicios de sesión de SQL e inicios de sesión de Microsoft Entra.
- Aumente la compatibilidad con la mejora funcional, como el uso de la autenticación específica de Microsoft Entra. La autenticación específica de Microsoft Entra permite desactivar la autenticación SQL, que incluye el administrador de SQL Server, los inicios de sesión y los usuarios de SQL.
- Permite que las entidades de seguridad de Microsoft Entra admitan réplicas geográficas. Las entidades de seguridad de Microsoft Entra pueden conectarse a la réplica geográfica de una base de datos de usuario, con permisos de solo lectura y denegación al servidor principal.
- Utilice de usar los inicios de sesión de las entidades de servicio de Microsoft Entra con roles especiales para automatizar completamente la creación de usuarios y bases de datos, así como el mantenimiento con las aplicaciones de Microsoft Entra.
Para más información sobre la autenticación de Microsoft Entra en Azure SQL, vea Usar la autenticación de Microsoft Entra.
Permisos
Los siguientes permisos son necesarios para utilizar o crear inicios de sesión de Microsoft Entra en la base de datos master
virtual.
- Permiso de administrador de Microsoft Entra o suscripción en el rol del servidor
loginmanager
. El primer inicio de sesión de Microsoft Entra solo puede crearlo el administrador de Microsoft Entra. - Debe ser un miembro de Microsoft Entra ID en el mismo directorio que se use para Azure SQL Database.
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
Use la sintaxis siguiente para crear y administrar entidades de seguridad de base de datos y servidor de Microsoft Entra.
Creación de inicio de sesión
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 master
virtual.
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
El login_name especifica la entidad de seguridad de Microsoft Entra, que es un usuario, grupo o aplicación de Microsoft Entra.
Para obtener más información, consulte CREAR INICIO DE SESIÓN (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 de nivel de base de datos asignada a un inicio de sesión de Microsoft Entra en la base de datos master
virtual. De forma similar a la sintaxis para crear un usuario de Microsoft Entra de base datos independiente, 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 basado en inicio de sesión, SID
tiene longitud 18 con un sufijo AADE
.
Nota:
Anexar el sufijo AADE
al SID es cómo identificamos 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 del inicio de sesión y sus usuarios no coinciden entre sys.server_principals
y sys.database_principals
. Para correlacionar al usuario de nuevo con su inicio de sesión, primero se debe quitar el sufijio AADE
.
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).
Deshabilitar o habilitar un inicio de sesión mediante ALTER LOGIN
La sintaxis DDL ALTER LOGIN (Transact-SQL) se usa para habilitar o deshabilitar un inicio de sesión de Microsoft Entra en Azure SQL Database.
ALTER LOGIN [login_name] DISABLE
Cuando se deshabilita un inicio de sesión, las conexiones ya no se permiten mediante esa entidad de seguridad del servidor. También impide a todas las entidades de seguridad de base de datos (usuarios) creadas a partir de ese inicio de sesión poder conectarse a sus respectivas bases de datos.
Nota:
ALTER LOGIN login_name DISABLE
no afectará a los usuarios de base de datos independiente, ya que no están asociados a los inicios de sesión.ALTER LOGIN login_name DISABLE
no se admite para grupos de Microsoft Entra.Un inicio de sesión deshabilitado individual no puede pertenecer a un usuario que forme parte de un grupo de inicio de sesión creado en la base de datos
master
(por ejemplo, un grupo administrador de Microsoft Entra).Para que los cambios
DISABLE
oENABLE
tengan efecto inmediato, la caché de autenticación y la caché the TokenAndPermUserStore deben borrarse mediante los comandos T-SQL.DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Roles para entidades de seguridad de Microsoft Entra
Los roles especiales de SQL Database pueden asignarse a los usuarios de la base de datos master
virtual para las entidades de seguridad de Microsoft Entra, incluidos dbmanager y loginmanager.
Los roles de servidor de Azure SQL Database pueden asignar a inicios de sesión en la base de datos master
virtual.
Para obtener un tutorial sobre cómo conceder estos roles, consulte Tutorial: Creación y uso de inicios de sesión de servidor de Microsoft Entra.
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.
- Un administrador o usuario de SQL no puede ejecutar las siguientes operaciones de Microsoft Entra:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
EXECUTE AS USER [bob@contoso.com]
ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
- No se admite la suplantación de entidades de seguridad de servidor (inicios de sesión) de Microsoft Entra para la Azure SQL Database y Azure Synapse Analytics. No es compatible con SQL Managed Instance.
- EXECUTE AS (cláusula de Transact-SQL)
- EXECUTE AS (Transact-SQL)
- Se admite la suplantación de identidades de entidades de seguridad de nivel de base de datos (usuarios) de Microsoft Entra en todos los productos Microsoft SQL.
- Los inicios de sesión de Microsoft Entra no pueden superponerse con el 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 a través de T-SQL. Después de que la cuenta se autentique en el servidor, el inicio de sesión tendrá los permisos efectivos de un administrador de Microsoft Entra y no de un inicio de sesión recién creado.
- No se admite el cambio de 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 se modifican los permisos para un inicio de sesión de Microsoft Entra, de forma predeterminada, los cambios solo surten efecto la próxima vez que el inicio de sesión se conecta a Azure SQL Database. 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 y Azure Data Studio, el comando de script para crear un usuario no comprueba si ya hay un inicio de sesión de Microsoft Entra en
master
con el mismo nombre. Siempre genera el T-SQL para un usuario de Microsoft Entra de base de datos independiente. - Si intentas crear un inicio de sesión o un usuario desde una entidad de servicio con un nombre para mostrar que no es único, podría producirse un error. Para obtener más información sobre cómo mitigar este error, consulta Inicios de sesión y usuarios de Microsoft Entra con nombres para mostrar que no son únicos.
Limitaciones de las entidades de seguridad de servidor de grupo de Microsoft Entra
Con los inicios de sesión de Microsoft Entra en versión preliminar pública para la Azure SQL Database y Azure Synapse Analytics, se indican las limitaciones conocidas:
- Los roles de servidor de Azure SQL Database no se admiten para los grupos de Microsoft Entra.
- Si el administrador de SQL es un grupo de Microsoft Entra, hay algunas limitaciones cuando los usuarios de ese grupo se conectan. Cada usuario de Microsoft Entra no forma parte de la tabla
sys.server_principals
individualmente. Esto tiene varias consecuencias, incluidas las llamadas aSUSER_SID
que devuelvenNULL
. - Los inicios de sesión de usuario de Microsoft Entra que forman parte de los inicios de sesión de grupo de Microsoft Entra tampoco se crean implícitamente, lo que significa que no tendrán un esquema predeterminado y no podrán realizar operaciones como
CREATE SCHEMA
hasta que se cree un inicio de sesión para el usuario de Microsoft Entra o se asigne un esquema predeterminado al grupo. - No se admite el cambio de 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]
se genera un mensaje de error:Msg 33181, Level 16, State 1, Line 4 The new owner cannot be Azure Active Directory group.