sys.database_principals (Transact-SQL)
Retorna uma linha para cada entidade de segurança em um banco de dados.
Nome da coluna |
Tipo de dados |
Descrição |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
nome |
sysname |
Nome da entidade de segurança, exclusivo no banco de dados. |
||||||||||
principal_id |
int |
ID da entidade de segurança, exclusiva no banco de dados. |
||||||||||
tipo |
char(1) |
Tipo da entidade de segurança: S = Usuário do SQL U = Usuário do Windows G = Grupo do Windows A = Função de aplicativo R = Função de banco de dados C = Usuário mapeado para um certificado K = Usuário mapeado para uma chave assimétrica |
||||||||||
type_desc |
nvarchar(60) |
Descrição do tipo de entidade de segurança. SQL_USER WINDOWS_USER WINDOWS_GROUP APPLICATION_ROLE DATABASE_ROLE CERTIFICATE_MAPPED_USER ASYMMETRIC_KEY_MAPPED_USER |
||||||||||
default_schema_name |
sysname |
Nome a ser usado quando o nome SQL não especificar esquema. Nulo para principais que não sejam do tipo S, U ou A. |
||||||||||
create_date |
datetime |
Hora em que a entidade de segurança foi criada. |
||||||||||
modify_date |
datetime |
Hora em que a entidade de segurança foi modificada pela última vez. |
||||||||||
owning_principal_id |
int |
ID da entidade de segurança que é proprietária desta entidade de segurança. Todas as entidades de segurança, exceto Funções de Banco de Dados, devem pertencer ao dbo. |
||||||||||
sid |
varbinary(85) |
SID (ID de segurança) da entidade de segurança. NULL for SYS e INFORMATION SCHEMAS |
||||||||||
is_fixed_role |
bit |
Se 1, então essa linha representa 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. |
||||||||||
authentication_type |
int |
Significa um tipo de autenticação.
Não se aplica ao SQL Azure. |
||||||||||
authentication_type_desc |
nvarchar(60) |
Descrição do tipo de autenticação.
Não se aplica ao SQL Azure. |
||||||||||
default_language_name |
sysname |
Significa o idioma padrão para esta entidade de segurança. Não se aplica ao SQL Azure. |
||||||||||
default_language_lcid |
int |
Significa o LCID padrão para esta entidade de segurança. Não se aplica ao SQL Azure. |
Comentários
Os valores das propriedades PasswordLastSetTime estão disponíveis em todas as configurações suportadas do SQL Server, porém outras estarão disponíveis apenas se o SQL Server for executado no Windows Server 2003 e tanto o CHECK_POLICY como o CHECK_EXPIRATION estiverem habilitados. Consulte Política de senha para obter mais informações.
Permissões
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. Ver outros usuários requer ALTER ANY USER ou uma permissão no usuário. Ver funções definidas pelo usuário requer ALTER ANY ROLE ou associação na função.
Exemplos
A: Listando todas as permissões de entidades de segurança do banco de dados
A consulta a seguir lista as permissões concedidas ou negadas explicitamente a entidades de segurança do banco de dados.
Importante |
---|
As permissões de funções de banco de dados fixas não aparecem em sys.database_permissions. Portanto, entidades de segurança do banco de dados podem ter permissões adicionais não listadas aqui. |
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 dados
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.
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ém
Referência
Exibições de catálogo (Transact-SQL)
Exibições do catálogo de segurança (Transact-SQL)