Compartir a través de


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í.

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)