sys.server_principals (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance 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) | Identificador de seguridad (SID) de la entidad de seguridad. El SID de una entidad de seguridad de Windows coincide con su SID de Windows. El SID de una identidad de usuario de Microsoft Entra es la representación binaria de su identificador de objeto de Microsoft Entra. El SID de un grupo de Microsoft Entra es la representación binaria de su identificador de objeto de Microsoft Entra. El SID de una aplicación de Microsoft Entra es la representación binaria de su identificador de cliente de Microsoft Entra. |
type | char(1) | Tipo de entidad de seguridad: S = Inicio de sesión de SQL R = Rol del servidor Disponible en SQL Server, Azure SQL Instancia administrada y PDW (en versión preliminar en Azure SQL Database): E = Inicio de sesión externo o aplicación de Microsoft Entra ID X = Grupo externo de Microsoft Entra ID Disponible en SQL Server, Azure SQL Instancia administrada y PDW (no en Azure SQL Database): U = Inicio de sesión de Windows G = Grupo de Windows C = Inicio de sesión asignado a un certificado 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 SERVER_ROLE Disponible en SQL Server, Azure SQL Instancia administrada y PDW (en versión preliminar en Azure SQL Database): EXTERNAL_LOGIN EXTERNAL_GROUP Disponible en SQL Server, Azure SQL Instancia administrada y PDW (no en Azure SQL Database): WINDOWS_LOGIN WINDOWS_GROUP CERTIFICATE_MAPPED_LOGIN ASYMMETRIC_KEY_MAPPED_LOGIN |
is_disabled | int | 1 = Inicio de sesión deshabilitado 0 = El inicio de sesión está habilitado. |
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 la entidad de seguridad. |
default_language_name | sysname | Idioma predeterminado para la entidad de seguridad. |
credential_id | int | Identificador de una credencial asociada a la entidad de seguridad. Si no hay ninguna credencial asociada a esta entidad de seguridad, credential_id es 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. La visualización de otros inicios de sesión requiere ALTER ANY LOGIN o un permiso en el inicio de sesión. La visualización de roles de servidor definidos por el usuario requiere ALTER ANY SERVER ROLE o 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.
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;
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í.
Contenido relacionado
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)