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

ESTE TÓPICO APLICA-SE A: simSQL Server (a partir de 2008)simBanco de Dados SQL do Microsoft AzuresimAzure SQL Data Warehouse simParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Retorna uma linha para cada entidade de segurança em um banco de dados do SQL ServerSQL Server.Returns a row for each security principal in a SQL ServerSQL Server database.

Nome da colunaColumn name Tipo de dadosData type DescriptionDescription
namename sysnamesysname Nome da entidade de segurança, exclusivo no banco de dados.Name of principal, unique within the database.
principal_idprincipal_id Intint ID da entidade de segurança, exclusiva no banco de dados.ID of principal, unique within the database.
typetype char(1)char(1) Tipo do principal:Principal type:

A = Função de aplicativoA = Application role

C = Usuário mapeado para um certificadoC = User mapped to a certificate

E = usuário externo do Active Directory do AzureE = External user from Azure Active Directory

G = Grupo do WindowsG = Windows group

K = Usuário mapeado para uma chave assimétricaK = User mapped to an asymmetric key

R = Função de banco de dadosR = Database role

S = Usuário do SQLS = SQL user

U = Usuário do WindowsU = Windows user

X = grupo externo de aplicativos ou de grupo do Active Directory do AzureX = External group from Azure Active Directory group or applications
type_desctype_desc nvarchar(60)nvarchar(60) Descrição do tipo de principal.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 Nome a ser usado quando o nome SQL não especificar um esquema.Name to be used when SQL name does not specify a schema. Nulo para principais que não sejam do tipo S, U ou A.Null for principals not of type S, U, or A.
create_datecreate_date datetimedatetime Hora em que o principal foi criado.Time at which the principal was created.
modify_datemodify_date datetimedatetime Hora em que a entidade de segurança foi modificada pela última vez.Time at which the principal was last modified.
owning_principal_idowning_principal_id Intint ID da entidade de segurança que é proprietária desta entidade de segurança.ID of the principal that owns this principal. Todas as entidades, exceto as funções de banco de dados devem ser de propriedade de dbo.All principals except Database Roles must be owned by dbo.
sidsid varbinary(85)varbinary(85) SID (ID de segurança) da entidade de segurança.SID (Security Identifier) of the principal. NULL for SYS e INFORMATION SCHEMAS.NULL for SYS and INFORMATION SCHEMAS.
is_fixed_roleis_fixed_role bitbit Se 1, essa linha representará uma entrada para uma das funções de banco de dados fixa: 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 Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Significa um tipo de autenticação.Signifies authentication type. Estes são os valores possíveis e suas descrições.The following are the possible values and their descriptions.

0: nenhuma autenticação0 : No authentication
1: autenticação de instância1 : Instance authentication
2: autenticação de banco de dados2 : Database authentication
3: autenticação do Windows3 : Windows Authentication
authentication_type_descauthentication_type_desc nvarchar(60)nvarchar(60) Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Descrição do tipo de autenticação.Description of the authentication type. Estes são os valores possíveis e suas descrições.The following are the possible values and their descriptions.

NONE: Nenhuma autenticação.NONE : No authentication
INSTÂNCIA: Autenticação de instânciaINSTANCE : Instance authentication
Banco de dados: Autenticação de banco de dadosDATABASE : Database authentication
WINDOWS: AutenticaçãoWINDOWS : Windows Authentication
default_language_namedefault_language_name sysnamesysname Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Significa o idioma padrão para esta entidade de segurança.Signifies the default language for this principal.
default_language_lciddefault_language_lcid Intint Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Significa o LCID padrão para esta entidade de segurança.Signifies the default LCID for this principal.
allow_encrypted_value_modificationsallow_encrypted_value_modifications bitbit Aplica-se a: SQL Server 2016 (13.x)SQL Server 2016 (13.x) a SQL Server 2017SQL Server 2017, Banco de Dados SQLSQL Database.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, Banco de Dados SQLSQL Database.

Suprime as verificações de metadados criptográficos no servidor em operações de cópia em massa.Suppresses cryptographic metadata checks on the server in bulk copy operations. Isso permite que o usuário copiar em massa dados criptografados usando sempre criptografado, entre tabelas ou bancos de dados, sem descriptografá-los.This enables the user to bulk copy data encrypted using Always Encrypted, between tables or databases, without decrypting the data. O padrão é OFF.The default is OFF.

RemarksRemarks

O PasswordLastSetTime propriedades estão disponíveis em todas as configurações com suporte do SQL Server, mas as outras propriedades estão disponíveis somente quando o SQL Server está em execução no Windows Server 2003 ou posterior e CHECK_POLICY e CHECK_ EXPIRAÇÃO estão 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 política de senha para obter mais informações.See Password Policy for more information.

PermissõesPermissions

Qualquer usuário pode ver seu próprio nome de usuário, os usuários do sistema e as funções de banco de dados fixas.Any user can see their own user name, the system users, and the fixed database roles. Ver outros usuários requer ALTER ANY USER ou uma permissão no usuário.To see other users, requires ALTER ANY USER, or a permission on the user. Ver funções definidas pelo usuário requer ALTER ANY ROLE ou associação na função.To see user-defined roles, requires ALTER ANY ROLE, or membership in the role.

ExemplosExamples

A: Listando todas as permissões de entidades de segurança do banco de dadosA: Listing all the permissions of database principals

A consulta a seguir lista as permissões concedidas ou negadas explicitamente a entidades de segurança do banco de dados.The following query lists the permissions explicitly granted or denied to database principals.

Importante

As permissões de funções de banco de dados fixas não aparecem em sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Portanto, entidades de segurança do banco de dados podem ter permissões adicionais não listadas aqui.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: Listando permissões a objetos de esquema em um banco de dadosB: Listing permissions on schema objects within a database

A consulta a seguir une sys.database_principals e sys.database_permissions com sys.objects e sys.schemas para listar permissões concedidas ou negadas 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;  

Exemplos: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

C: listando todas as permissões de objetos de banco de dadosC: Listing all the permissions of database principals

A consulta a seguir lista as permissões concedidas ou negadas explicitamente a entidades de segurança do banco de dados.The following query lists the permissions explicitly granted or denied to database principals.

Importante

As permissões de funções de banco de dados fixas não aparecem no sys.database_permissions.The permissions of fixed database roles do not appear in sys.database_permissions. Portanto, entidades de segurança do banco de dados podem ter permissões adicionais não listadas aqui.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;  

Unidade d: listando permissões em objetos de esquema de um banco de dadosD: Listing permissions on schema objects within a database

A consulta a seguir junções sys.database_principals e sys.database_permissions para sys.objects e sys.schemas à lista de permissões concedidas ou negadas 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;  

Consulte tambémSee Also

Entidades (Mecanismo de Banco de Dados) Principals (Database Engine)
sys.server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
Exibições de catálogo de segurança (Transact-SQL) Security Catalog Views (Transact-SQL)
Usuários de banco de dados independente - tornando seu banco de dados portátil Contained Database Users - Making Your Database Portable
Conectar-se ao Banco de Dados SQL usando a autenticação do Azure Active DirectoryConnecting to SQL Database By Using Azure Active Directory Authentication