sys.server_principals (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Analytics Platform System (PDW)
Contiene una fila por cada entidad de seguridad a nivel de servidor.
Nota:
Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
name | sysname | Nombre de la entidad de seguridad. Es exclusivo en el servidor. |
principal_id | int | Número de Id. de la entidad de seguridad. Es exclusivo en el servidor. |
sid | varbinary(85) | SID (identificador de seguridad) de la entidad de seguridad. Si se trata de una entidad de seguridad de Windows, coincide con el SID de Windows. |
type | char(1) | Tipo de entidad de seguridad: S = Inicio de sesión de SQL U = Inicio de sesión de Windows G = Grupo de Windows R = Rol del servidor C = Inicio de sesión asignado a un certificado E = Inicio de sesión externo de Microsoft Entra ID X = Grupo externo del grupo o aplicaciones de Microsoft Entra K = Inicio de sesión asignado a una clave asimétrica |
type_desc | nvarchar(60) | Descripción de los tipos de entidad de seguridad: SQL_LOGIN WINDOWS_LOGIN WINDOWS_GROUP SERVER_ROLE CERTIFICATE_MAPPED_LOGIN EXTERNAL_LOGIN EXTERNAL_GROUP ASYMMETRIC_KEY_MAPPED_LOGIN |
is_disabled | int | 1 = Inicio de sesión deshabilitado |
create_date | datetime | Hora en que se creó la entidad de seguridad. |
modify_date | datetime | Hora en que se modificó por última vez la definición de la entidad de seguridad. |
default_database_name | sysname | Base de datos predeterminada para esta entidad de seguridad. |
default_language_name | sysname | Lenguaje predeterminado para esta entidad de seguridad. |
credential_id | int | Id. de una credencial asociada a esta entidad de seguridad. Si no se asocia ninguna credencial a esta entidad de seguridad, el valor de credential_id será NULL. |
owning_principal_id | int | El principal_id del propietario de un rol de servidor. Es NULL si la entidad de seguridad no es un rol fijo de servidor. |
is_fixed_role | bit | Devuelve 1 si la entidad de seguridad es uno de los roles de servidor integrados con permisos fijos. Para obtener más información, vea Roles de nivel de servidor. |
Permisos
Cualquier inicio de sesión puede ver su propio nombre de inicio de sesión, los inicios de sesión del sistema y los roles fijos de servidor. Para ver otros inicios de sesión, se requiere ALTER ANY LOGIN o un permiso en el inicio de sesión. Para ver los roles de servidor definidos por el usuario, se requiere ALTER ANY SERVER ROLE o la pertenencia al rol.
En Azure SQL Database, solo las entidades de seguridad siguientes pueden ver todos los inicios de sesión:
- miembros del rol de servidor ##MS_LoginManager## o del rol de base de datos especial loginmanager en
master
- el administrador de Microsoft Entra y el administrador de SQL Server
La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario ha recibido algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.
Ejemplos
La consulta siguiente enumera los permisos que se otorgan o deniegan específicamente a las entidades de seguridad de servidor.
Importante
Los permisos de roles fijos de servidor (que no sean públicos) no aparecen en sys.server_permissions. Por tanto, es posible que las entidades de seguridad de servidor tengan permisos adicionales que no aparezcan aquí.
SELECT pr.principal_id, pr.name, pr.type_desc,
pe.state_desc, pe.permission_name
FROM sys.server_principals AS pr
JOIN sys.server_permissions AS pe
ON pe.grantee_principal_id = pr.principal_id;
Nota:
Los permisos de roles fijos de servidor no aparecen en sys.server_permissions.
Consulte también
Vistas de catálogo de seguridad (Transact-SQL)
Vistas de catálogo (Transact-SQL)
Entidades de seguridad (motor de base de datos)
Jerarquía de permisos (motor de base de datos)