sys.database_principals (Transact-SQL)sys.database_principals (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Devuelve una fila para cada entidad de seguridad de una base de datos de SQL ServerSQL Server.Returns a row for each security principal in a SQL ServerSQL Server database.

Nombre de columnaColumn name Tipo de datosData type DescripciónDescription
namename sysnamesysname Nombre de la entidad de seguridad, único en la base de datos.Name of principal, unique within the database.
principal_idprincipal_id intint Id. de la entidad de seguridad, único en la base de datos.ID of principal, unique within the database.
typetype char(1)char(1) Tipo de entidad de seguridad:Principal type:

A = Rol de aplicaciónA = Application role

C = Usuario asignado a un certificadoC = User mapped to a certificate

E = usuario externo de Azure Active DirectoryE = External user from Azure Active Directory

G = Grupo de WindowsG = Windows group

K = Usuario asignado a una clave asimétricaK = User mapped to an asymmetric key

R = Rol de base de datosR = Database role

S = Usuario de SQLS = SQL user

U = Usuario de WindowsU = Windows user

X = grupo externo desde aplicaciones o el grupo de Azure Active DirectoryX = External group from Azure Active Directory group or applications
type_desctype_desc nvarchar(60)nvarchar(60) Descripción del tipo de entidad de seguridad.Description of principal type.

APPLICATION_ROLEAPPLICATION_ROLE

CERTIFICATE_MAPPED_USERCERTIFICATE_MAPPED_USER

EXTERNAL_USEREXTERNAL_USER

WINDOWS_GROUPWINDOWS_GROUP

ASYMMETRIC_KEY_MAPPED_USERASYMMETRIC_KEY_MAPPED_USER

DATABASE_ROLEDATABASE_ROLE

SQL_USERSQL_USER

WINDOWS_USERWINDOWS_USER

EXTERNAL_GROUPSEXTERNAL_GROUPS
default_schema_namedefault_schema_name sysnamesysname Nombre que se utilizará al nombre SQL no especifica un esquema.Name to be used when SQL name does not specify a schema. Null para entidades de seguridad que no son del tipo S, U o A.Null for principals not of type S, U, or A.
create_datecreate_date datetimedatetime Hora en que se creó la entidad de seguridad.Time at which the principal was created.
modify_datemodify_date datetimedatetime Hora en que se modificó por última vez la entidad de seguridad.Time at which the principal was last modified.
owning_principal_idowning_principal_id intint Id. de la entidad de seguridad propietaria de esta entidad de seguridad.ID of the principal that owns this principal. Todas las entidades de seguridad excepto Roles de base de datos deben pertenecer a dbo.All principals except Database Roles must be owned by dbo.
sidsid varbinary(85)varbinary(85) SID (identificador de seguridad) de la entidad de seguridad.SID (Security Identifier) of the principal. NULL para SYS e INFORMATION SCHEMAS.NULL for SYS and INFORMATION SCHEMAS.
is_fixed_roleis_fixed_role bitbit Si es 1, esta fila representa una entrada para uno de los roles fijos de base de datos: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.If 1, this row represents an entry for one of the fixed database roles: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_typeauthentication_type intint Se aplica a: desde SQL Server 2012 (11.x)SQL Server 2012 (11.x) hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Tipo de autenticación.Signifies authentication type. Los siguientes son los valores posibles y sus descripciones.The following are the possible values and their descriptions.

0: Sin autenticación0 : No authentication
1: Autenticación de instancias1 : Instance authentication
2: Autenticación de base de datos2 : Database authentication
3: Autenticación de Windows3 : Windows Authentication
authentication_type_descauthentication_type_desc nvarchar(60)nvarchar(60) Se aplica a: desde SQL Server 2012 (11.x)SQL Server 2012 (11.x) hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Descripción del tipo de autenticación.Description of the authentication type. Los siguientes son los valores posibles y sus descripciones.The following are the possible values and their descriptions.

NINGUNO: Sin autenticaciónNONE : No authentication
INSTANCIA: Autenticación de instanciasINSTANCE : Instance authentication
BASE DE DATOS: Autenticación de base de datosDATABASE : Database authentication
WINDOWS: Autenticación de WindowsWINDOWS : Windows Authentication
default_language_namedefault_language_name sysnamesysname Se aplica a: desde SQL Server 2012 (11.x)SQL Server 2012 (11.x) hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Idioma predeterminado para esta entidad de seguridad.Signifies the default language for this principal.
default_language_lciddefault_language_lcid intint Se aplica a: desde SQL Server 2012 (11.x)SQL Server 2012 (11.x) hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

LCID predeterminado para esta entidad de seguridad.Signifies the default LCID for this principal.
allow_encrypted_value_modificationsallow_encrypted_value_modifications bitbit Se aplica a: de SQL Server 2016 (13.x)SQL Server 2016 (13.x) a SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, SQL DatabaseSQL Database.

Suprime las comprobaciones de metadatos criptográficos en el servidor en operaciones de copia masiva.Suppresses cryptographic metadata checks on the server in bulk copy operations. Esto permite al usuario a la copia masiva de datos cifrado con Always Encrypted, entre las tablas o bases de datos, sin descifrar los datos.This enables the user to bulk copy data encrypted using Always Encrypted, between tables or databases, without decrypting the data. El valor predeterminado es OFF.The default is OFF.

ComentariosRemarks

El PasswordLastSetTime propiedades están disponibles en todas las configuraciones admitidas de SQL Server, pero las demás propiedades solo están disponibles cuando se ejecuta SQL Server en Windows Server 2003 o posterior y tanto CHECK_POLICY como CHECK_ EXPIRACIÓN están habilitados.The PasswordLastSetTime properties are available on all supported configurations of SQL Server, but the other properties are only available when SQL Server is running on Windows Server 2003 or later and both CHECK_POLICY and CHECK_EXPIRATION are enabled. Consulte directiva de contraseñas para obtener más información.See Password Policy for more information.

PermisosPermissions

Cualquier usuario puede ver su propio nombre de usuario, los usuarios del sistema y los roles fijos de base de datos.Any user can see their own user name, the system users, and the fixed database roles. Para ver otros usuarios, requiere ALTER ANY USER o un permiso en el usuario.To see other users, requires ALTER ANY USER, or a permission on the user. Para ver los roles definidos por el usuario, se requiere ALTER ANY ROLE o la pertenencia al rol.To see user-defined roles, requires ALTER ANY ROLE, or membership in the role.

EjemplosExamples

A. Enumerar todos los permisos de las entidades de seguridad de base de datosA: Listing all the permissions of database principals

La consulta siguiente enumera los permisos que se otorgan o deniegan específicamente a las entidades de seguridad de base de datos.The following query lists the permissions explicitly granted or denied to database principals.

Importante

Los permisos de roles fijos de base de datos no aparecen en sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Por tanto, es posible que las entidades de seguridad de base de datos tengan permisos adicionales que no aparezcan aquí.Therefore, database principals may have additional permissions not listed here.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc, pe.permission_name  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id;  

B: Enumerar los permisos de objetos de esquema dentro de una base de datosB: Listing permissions on schema objects within a database

La consulta siguiente se combina con sys.database_principals y sys.database_permissions para que sys.objects y sys.schemas enumeren los permisos otorgados o denegados a objetos de esquema específicos.The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc,   
    pe.permission_name, s.name + '.' + o.name AS ObjectName  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id  
JOIN sys.objects AS o  
    ON pe.major_id = o.object_id  
JOIN sys.schemas AS s  
    ON o.schema_id = s.schema_id;  

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

C: Enumerar todos los permisos de las entidades de seguridad de base de datosC: Listing all the permissions of database principals

La consulta siguiente enumera los permisos que se otorgan o deniegan específicamente a las entidades de seguridad de base de datos.The following query lists the permissions explicitly granted or denied to database principals.

Importante

Los permisos de los roles fijos de base de datos no aparecen en sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Por tanto, es posible que las entidades de seguridad de base de datos tengan permisos adicionales que no aparezcan aquí.Therefore, database principals may have additional permissions not listed here.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc, pe.permission_name  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id;  

D. Enumerar los permisos de objetos de esquema dentro de una base de datosD: Listing permissions on schema objects within a database

La siguiente consulta combinaciones sys.database_principals y sys.database_permissions a sys.objects y sys.schemas enumerar los permisos concedidos o denegados a objetos de esquema específico.The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pr.authentication_type_desc, pe.state_desc,   
    pe.permission_name, s.name + '.' + o.name AS ObjectName  
FROM sys.database_principals AS pr  
JOIN sys.database_permissions AS pe  
    ON pe.grantee_principal_id = pr.principal_id  
JOIN sys.objects AS o  
    ON pe.major_id = o.object_id  
JOIN sys.schemas AS s  
    ON o.schema_id = s.schema_id;  

Vea tambiénSee Also

Entidades de seguridad (motor de base de datos) Principals (Database Engine)
sys.server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
Vistas de catálogo de seguridad (Transact-SQL) Security Catalog Views (Transact-SQL)
Usuarios de base de datos independiente: hacer que la base de datos sea portátil Contained Database Users - Making Your Database Portable
Conexión a Base de datos SQL mediante autenticación de Azure Active DirectoryConnecting to SQL Database By Using Azure Active Directory Authentication