sys.server_principals (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics 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 de las vistas de catálogo se limita a elementos protegibles que un usuario posee o en el que se concedió algún permiso al usuario. 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)