Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Ponto de extremidade de análise de SQL no Microsoft Fabric
Depósito no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
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 da coluna for igual à permissão do objeto correspondente, não há linha para ela e a permissão aplicada será a do objeto.
Important
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 | Description |
|---|---|---|
| class | tinyint | Identifica a classe na qual a permissão existe. Para obter mais informações, confira sys.securable_classes (Transact-SQL). 0 = Banco de dados 1 = Objeto ou coluna 3 = Esquema 4 = Entidade do Banco de Dados 5 = Assembly - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 6 = Tipo 10 = Coleção de esquemas XML - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 15 = Tipo de Mensagem - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 16 = Contrato de Serviço - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 17 = Serviço - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 18 = Associação de Serviço Remoto - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 19 = Rota - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 23 =Catálogo de Texto Completo - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 24 = Chave simétrica - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 25 = Certificado - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 26 = Chave assimétrica - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 29 = Lista de palavras irrelevantes de texto completo - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 31 = Lista de Propriedades de Pesquisa - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 32 = Credencial no Escopo do Banco de Dados – Aplica-se a: SQL Server 2016 (13.x) e versões posteriores. 34 = Idioma Externo – Aplica-se a: SQL Server 2019 (15.x) e versões posteriores. |
| 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_KEYS CERTIFICATE ASYMMETRIC_KEY Lista de palavras excluídas de pesquisa FULLTEXT LISTA DE PROPRIEDADES DE PESQUISA CREDENCIAL NO ESCOPO DO BANCO DE DADOS IDIOMA EXTERNO |
| major_id | int | ID na qual a permissão existe, interpretada de acordo com a classe. Normalmente, o major_id simplesmente o tipo de ID que se aplica ao que a classe representa. 0 = O próprio banco de dados >0 = IDs de objeto para objetos de usuário <0 = Object-IDs para objetos do sistema |
| minor_id | int | ID secundária na qual a permissão existe, interpretada de acordo com a classe. Muitas vezes, o minor_id é zero, porque não há subcategoria disponível para a classe de objeto. Caso contrário, será a ID da coluna de uma tabela. |
| 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) | Declaração 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 |
Permissões de banco de dados
Os seguintes tipos de permissões são possíveis.
| Tipo de permissão | Nome da permissão | Aplica-se a protegíveis |
|---|---|---|
| AADS | ALTERAR QUALQUER SESSÃO DE EVENTO DE BANCO DE DADOS | DATABASE |
| AAMK | ALTERAR QUALQUER MÁSCARA | DATABASE |
| AEDS | ALTERAR QUALQUER FONTE DE DADOS EXTERNA | DATABASE |
| AEFF | ALTERAR QUALQUER FORMATO DE ARQUIVO EXTERNO | DATABASE |
| AL | ALTER | FUNÇÃO DE APLICATIVO, ASSEMBLY, CHAVE ASSIMÉTRICA, CERTIFICADO, CONTRATO, BANCO DE DADOS, CATÁLOGO FULLTEXT, TIPO DE MENSAGEM, OBJETO, ASSOCIAÇÃO DE SERVIÇO REMOTO, FUNÇÃO, ROTA, ESQUEMA, SERVIÇO, CHAVE SIMÉTRICA, USUÁRIO, COLEÇÃO DE ESQUEMA XML |
| ALAK | ALTER ANY CHAVE ASSIMÉTRICA | DATABASE |
| ALAR | ALTERAR QUALQUER FUNÇÃO DE APLICAÇÃO | DATABASE |
| ALAS | ALTERAR QUALQUER ASSEMBLAGEM | DATABASE |
| ALCF | ALTERAR QUALQUER CERTIFICADO | DATABASE |
| ALDS | ALTERAR QUALQUER ESPAÇO DE DADOS | DATABASE |
| ALED | ALTERAR QUALQUER NOTIFICAÇÃO DE EVENTO DE BANCO DE DADOS | DATABASE |
| ALFT | ALTERAR QUALQUER CATÁLOGO DE TEXTO COMPLETO | DATABASE |
| ALMT | ALTERAR QUALQUER TIPO DE MENSAGEM | DATABASE |
| ALRL | ALTERAR QUALQUER FUNÇÃO | DATABASE |
| ALRT | ALTERAR QUALQUER ROTA | DATABASE |
| ALSB | ALTERAR QUALQUER VINCULAÇÃO DE SERVIÇO REMOTO | DATABASE |
| ALSC | ALTERAR QUALQUER CONTRATO | DATABASE |
| ALSK | ALTERAR QUALQUER CHAVE SIMÉTRICA | DATABASE |
| ALSM | ALTER ANY SCHEMA (Modificar qualquer esquema) | DATABASE |
| ALSV | ALTERAR QUALQUER SERVIÇO | DATABASE |
| ALTG | ALTER TRIGGER DDL EM QUALQUER BANCO DE DADOS | DATABASE |
| ALUS | ALTERAR QUALQUER USUÁRIO | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | FAZER BACKUP DO BANCO DE DADOS | DATABASE |
| BALO | BACKUP LOG | DATABASE |
| CL | CONTROL | FUNÇÃO DE APLICATIVO, ASSEMBLY, CHAVE ASSIMÉTRICA, CERTIFICADO, CONTRATO, BANCO DE DADOS, CATÁLOGO FULLTEXT, TIPO DE MENSAGEM, OBJETO, ASSOCIAÇÃO DE SERVIÇO REMOTO, FUNÇÃO, ROTA, ESQUEMA, SERVIÇO, CHAVE SIMÉTRICA, TIPO, USUÁRIO, COLEÇÃO DE ESQUEMA XML |
| CO | CONNECT | DATABASE |
| CORP | REPLICAÇÃO DE CONEXÃO | DATABASE |
| CP | CHECKPOINT | DATABASE |
| CRAG | CRIAR AGREGAÇÃO | DATABASE |
| CRAK | CRIAR CHAVE ASSIMÉTRICA | DATABASE |
| CRAS | CRIAR ASSEMBLY | DATABASE |
| CRCF | CRIAR CERTIFICADO | DATABASE |
| CRDB | CRIAR BANCO DE DADOS | DATABASE |
| CRDF | CRIAR PADRÃO | DATABASE |
| CRED | CRIAR NOTIFICAÇÃO DE EVENTO DDL DE BANCO DE DADOS | DATABASE |
| CRFN | CRIAR FUNÇÃO | DATABASE |
| CRFT | CRIAR CATÁLOGO DE TEXTO COMPLETO | DATABASE |
| CRMT | CRIAR TIPO DE MENSAGEM | DATABASE |
| CRPR | CRIAR PROCEDIMENTO | DATABASE |
| CRQU | CRIAR FILA | DATABASE |
| CRRL | CRIAR PAPEL | DATABASE |
| CRRT | CRIAR ROTA | DATABASE |
| CRRU | CRIAR REGRA | DATABASE |
| CRSB | CRIAR VINCULAÇÃO DE SERVIÇO REMOTO | DATABASE |
| CRSC | CRIAR CONTRATO | DATABASE |
| CRSK | CRIAR CHAVE SIMÉTRICA | DATABASE |
| CRSM | CRIAR ESQUEMA | DATABASE |
| CRSN | CRIAR SINÔNIMO | DATABASE |
| CRSO |
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores. CRIAR SEQUÊNCIA |
DATABASE |
| CRSV | CRIAR SERVIÇO | DATABASE |
| CRTB | CREATE TABLE | DATABASE |
| CRTY | CRIAR TIPO | DATABASE |
| CRVW | CRIAR VISÃO | DATABASE |
| CRXS |
Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. CRIAR COLEÇÃO DE ESQUEMA XML |
DATABASE |
| DABO | ADMINISTRAR OPERAÇÕES EM LOTE DO BANCO DE DADOS | DATABASE |
| DL | DELETE | BANCO DE DADOS, OBJETO, ESQUEMA |
| EAES | EXECUTAR QUALQUER SCRIPT EXTERNO | DATABASE |
| EX | EXECUTE | ASSEMBLY, BANCO DE BANCO, OBJETO, ESQUEMA, TIPO, COLEÇÃO DE ESQUEMAS XML |
| IM | IMPERSONATE | USER |
| IN | INSERT | BANCO DE DADOS, OBJETO, ESQUEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, CHAVE ASSIMÉTRICA, CERTIFICADO, CONTRATO, BANCO DE DADOS, CATÁLOGO FULLTEXT, TIPO DE MENSAGEM, OBJETO, ESQUEMA, CHAVE SIMÉTRICA, TIPO, COLEÇÃO DE ESQUEMAS XML |
| SL | SELECT | BANCO DE DADOS, OBJETO, ESQUEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | ASSINAR NOTIFICAÇÕES DE CONSULTA | DATABASE |
| TO | ASSUMA A RESPONSABILIDADE | ASSEMBLY, CHAVE ASSIMÉTRICA, CERTIFICADO, CONTRATO, BANCO DE DADOS, CATÁLOGO FULLTEXT, TIPO DE MENSAGEM, OBJETO, ASSOCIAÇÃO DE SERVIÇO REMOTO, FUNÇÃO, ROTA, ESQUEMA, SERVIÇO, CHAVE SIMÉTRICA, TIPO, COLEÇÃO DE ESQUEMA XML |
| UP | UPDATE | BANCO DE DADOS, OBJETO, ESQUEMA |
| VW | DEFINIÇÃO VISUALIZAR | FUNÇÃO DE APLICATIVO, ASSEMBLY, CHAVE ASSIMÉTRICA, CERTIFICADO, CONTRATO, BANCO DE DADOS, CATÁLOGO FULLTEXT, TIPO DE MENSAGEM, OBJETO, ASSOCIAÇÃO DE SERVIÇO REMOTO, FUNÇÃO, ROTA, ESQUEMA, SERVIÇO, CHAVE SIMÉTRICA, TIPO, USUÁRIO, COLEÇÃO DE ESQUEMA XML |
| VWCK | EXIBIR QUALQUER DEFINIÇÃO DE CHAVE DE CRIPTOGRAFIA DE COLUNA | DATABASE |
| VWCM | EXIBIR QUALQUER DEFINIÇÃO DE CHAVE MESTRA DE COLUNA | DATABASE |
| VWCT | EXIBIR CONTROLE DE ALTERAÇÕES | TABELA, ESQUEMA |
| VWDS | EXIBIR ESTADO DO BANCO DE DADOS | DATABASE |
Permissões REVOKE e de exceção de coluna
Na maioria dos casos, o comando REVOKE removerá a entrada GRANT ou DENY do sys.database_permissions.
No entanto, é possível conceder permissões GRANT ou DENY em um objeto e, em seguida, REVOGAR essa permissão em uma coluna. Essa permissão de exceção de coluna será exibida como REVOKE no sys.database_permissions. Considere o seguinte exemplo:
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
Essas permissões aparecerão em sys.database_permissions como um GRANT (na tabela) e um REVOKE (na coluna).
Important
REVOKE é diferente de DENY, pois a entidade de Sales ainda pode ter acesso à coluna por meio de outras permissões. Se tivéssemos negado permissões em vez de revogá-las, Sales não seria capaz de exibir o conteúdo da coluna porque DENY sempre substitui GRANT.
Permissions
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 Metadata Visibility Configuration.
Examples
A. Listar todas as permissões de entidades de banco de dados
A consulta a seguir lista as permissões concedidas ou negadas explicitamente a entidades de segurança do banco de dados.
Important
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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id;
B. Listar permissões em objetos de esquema em um banco de dados
A consulta a seguir une sys.database_principals e sys.database_permissions sys.objectse 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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id;
C. Listar permissões para um objeto específico
Você pode usar o exemplo anterior para consultar permissões específicas para um único objeto de banco de dados.
Por exemplo, considere as seguintes permissões granulares concedidas a um usuário test de banco de dados no banco de dadosAdventureWorksDW2025de exemplo:
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Encontre as permissões granulares atribuídas a dbo.vAssocSeqOrders:
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
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
WHERE o.name = 'vAssocSeqOrders'
AND s.name = 'dbo';
Retorna a saída:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Consulte também
- Securables
- Hierarquia de permissões (Mecanismo de Banco de Dados)
- Exibições do catálogo de segurança (Transact-SQL)
- Exibições do Catálogo (Transact-SQL)