sys.database_permissions (Transact-SQL)
Retorna uma linha para cada permissão ou permissão de exceção de coluna no banco de dados. Para colunas, há uma linha para cada permissão que é diferente da permissão no nível de objeto correspondente. Se a permissão de coluna for igual à permissão de objeto correspondente, não haverá nenhuma linha para ela e a permissão real usada será a do objeto.
Importante |
---|
As permissões em nível de coluna substituem as permissões em nível de objeto na mesma entidade. |
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
class |
tinyint |
Identifica a classe na qual a permissão existe. 0 = Banco de dados 1 = Objeto ou coluna 3 = Esquema 4 = Principal de banco de dados 5 = Assembly 6 = Tipo 10 = Coleção de esquema XML 15 = Tipo de mensagem 16 = Contrato de serviço 17 = Serviço 18 = Associação de serviço remoto 19 = Rota 23 = Catálogo de texto completo 24 = Chave simétrica 25 = Certificado 26 = Chave assimétrica |
class_desc |
nvarchar(60) |
Descrição de classe na qual a permissão existe. DATABASE OBJECT_OR_COLUMN SCHEMA DATABASE_PRINCIPAL ASSEMBLY TYPE XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT SERVICE REMOTE_SERVICE_BINDING ROUTE FULLTEXT_CATALOG SYMMETRIC_KEY CERTIFICATE ASYMMETRIC_KEY |
major_id |
int |
ID na qual a permissão existe, interpretada de acordo com a classe. Em geral, é simplesmente o tipo de ID que se aplica àquilo que a classe representa. A interpretação para não padrão é a seguinte: 0 = Sempre 0 1 = ID do objeto ID negativas são atribuídas a objetos do sistema. |
minor_id |
int |
ID secundária na qual a permissão existe, interpretada de acordo com a classe. Para a maioria, é zero. Caso contrário, é o seguinte: 1 = ID de coluna se for uma coluna. Caso contrário, será 0 se for um objeto. |
grantee_principal_id |
int |
ID do principal de banco de dados para a qual as permissões são concedidas. |
grantor_principal_id |
int |
ID do principal de banco de dados do concessor dessas permissões. |
type |
char(4) |
Tipo de permissão de banco de dados. Para obter uma lista de tipos de permissão, consulte a próxima tabela. |
permission_name |
nvarchar(128) |
Nome de permissão. |
state |
char(1) |
Estado de permissão: D = Negar R = Revogar G = Conceder W = Opção Concessão com Concessão |
state_desc |
nvarchar(60) |
Descrição do estado da permissão: DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
Tipo de permissão |
Nome de permissão |
Aplica-se a protegíveis |
---|---|---|
AL |
ALTER |
APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, USER, XML SCHEMA COLLECTION |
ALAK |
ALTER ANY ASYMMETRIC KEY |
DATABASE |
ALAR |
ALTER ANY APPLICATION ROLE |
DATABASE |
ALAS |
ALTER ANY ASSEMBLY |
DATABASE |
ALCF |
ALTER ANY CERTIFICATE |
DATABASE |
ALDS |
ALTER ANY DATASPACE |
DATABASE |
ALED |
ALTER ANY DATABASE EVENT NOTIFICATION |
DATABASE |
ALFT |
ALTER ANY FULLTEXT CATALOG |
DATABASE |
ALMT |
ALTER ANY MESSAGE TYPE |
DATABASE |
ALRL |
ALTER ANY ROLE |
DATABASE |
ALRT |
ALTER ANY ROUTE |
DATABASE |
ALSB |
ALTER ANY REMOTE SERVICE BINDING |
DATABASE |
ALSC |
ALTER ANY CONTRACT |
DATABASE |
ALSK |
ALTER ANY SYMMETRIC KEY |
DATABASE |
ALSM |
ALTER ANY SCHEMA |
DATABASE |
ALSV |
ALTER ANY SERVICE |
DATABASE |
ALTG |
ALTER ANY DATABASE DDL TRIGGER |
DATABASE |
ALUS |
ALTER ANY USER |
DATABASE |
AUTH |
AUTHENTICATE |
DATABASE |
BADB |
BACKUP DATABASE |
DATABASE |
BALO |
BACKUP LOG |
DATABASE |
CL |
CONTROL |
APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
CO |
CONNECT |
DATABASE |
CORP |
CONNECT REPLICATION |
DATABASE |
CP |
CHECKPOINT |
DATABASE |
CRAG |
CREATE AGGREGATE |
DATABASE |
CRAK |
CREATE ASYMMETRIC KEY |
DATABASE |
CRAS |
CREATE ASSEMBLY |
DATABASE |
CRCF |
CREATE CERTIFICATE |
DATABASE |
CRDB |
CREATE DATABASE |
DATABASE |
CRDF |
CREATE DEFAULT |
DATABASE |
CRED |
CREATE DATABASE DDL EVENT NOTIFICATION |
DATABASE |
CRFN |
CREATE FUNCTION |
DATABASE |
CRFT |
CREATE FULLTEXT CATALOG |
DATABASE |
CRMT |
CREATE MESSAGE TYPE |
DATABASE |
CRPR |
CREATE PROCEDURE |
DATABASE |
CRQU |
CREATE QUEUE |
DATABASE |
CRRL |
CREATE ROLE |
DATABASE |
CRRT |
CREATE ROUTE |
DATABASE |
CRRU |
CREATE RULE |
DATABASE |
CRSB |
CREATE REMOTE SERVICE BINDING |
DATABASE |
CRSC |
CREATE CONTRACT |
DATABASE |
CRSK |
CREATE SYMMETRIC KEY |
DATABASE |
CRSM |
CREATE SCHEMA |
DATABASE |
CRSN |
CREATE SYNONYM |
DATABASE |
CRSO |
CREATE SEQUENCE |
DATABASE |
CRSV |
CREATE SERVICE |
DATABASE |
CRTB |
CREATE TABLE |
DATABASE |
CRTY |
CREATE TYPE |
DATABASE |
CRVW |
CREATE VIEW |
DATABASE |
CRXS |
CREATE XML SCHEMA COLLECTION |
DATABASE |
DL |
DELETE |
DATABASE, OBJECT, SCHEMA |
EX |
EXECUTE |
ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION |
IM |
IMPERSONATE |
USER |
IN |
INSERT |
DATABASE, OBJECT, SCHEMA |
RC |
RECEIVE |
OBJECT |
RF |
REFERENCES |
ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
SL |
SELECT |
DATABASE, OBJECT, SCHEMA |
SN |
SEND |
SERVICE |
SPLN |
SHOWPLAN |
DATABASE |
SUQN |
SUBSCRIBE QUERY NOTIFICATIONS |
DATABASE |
TO |
TAKE OWNERSHIP |
ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION |
UP |
UPDATE |
DATABASE, OBJECT, SCHEMA |
VW |
VIEW DEFINITION |
APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
VWCT |
VIEW CHANGE TRACKING |
TABLE, SCHEMA |
VWDS |
VIEW DATABASE STATE |
DATABASE |
Permissões
Qualquer usuário pode ver suas próprias permissões. Para ver as permissões de outros usuários, requer VIEW DEFINITION, ALTER ANY USER ou qualquer permissão em um usuário. Ver funções definidas pelo usuário requer ALTER ANY ROLE ou associação na função (como público).
A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.
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 do catálogo de segurança (Transact-SQL)
Exibições de catálogo (Transact-SQL)