Compartilhar via


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.

Value

Descrição

0

Sem autenticação

1

Autenticação de instância

2

Autenticação de banco de dados

3

Autenticação do Windows

Não se aplica ao SQL Azure.

authentication_type_desc

nvarchar(60)

Descrição do tipo de autenticação.

Value

Descrição

NONE

Sem autenticação

INSTANCE

Autenticação de instância

DATABASE

Autenticação de banco de dados

WINDOWS

Autenticação do Windows

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.

Observação importanteImportante

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)

Conceitos

Entidades (Mecanismo de Banco de Dados)