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 FULLTEXT STOPLIST SEARCH PROPERTY LIST DATABASE SCOPED CREDENTIAL EXTERNAL LANGUAGE |
| 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 DATABASEEVENT SESSION | DATABASE |
| AAMK | ALTERAR QUALQUER MÁSCARA | DATABASE |
| AEDS | ALTERAR QUALQUER EXTERNAL DATA SOURCE | DATABASE |
| AEFF | ALTERAR QUALQUER EXTERNAL FILE FORMAT | DATABASE |
| AL | ALTER | APPLICATION ROLE, , , , , , , , OBJECTO, REMOTE SERVICE BINDING, , USERROUTESCHEMASYMMETRIC KEYSERVICEROLEMESSAGE TYPEFULLTEXT CATALOGDATABASECONTRACTCERTIFICATEASYMMETRIC KEYASSEMBLYXML SCHEMA COLLECTION |
| ALAK | ALTERAR QUALQUER ASYMMETRIC KEY | DATABASE |
| ALAR | ALTERAR QUALQUER APPLICATION ROLE | DATABASE |
| ALAS | ALTERAR QUALQUER ASSEMBLY | DATABASE |
| ALCF | ALTERAR QUALQUER CERTIFICATE | DATABASE |
| ALDS | ALTERAR QUALQUER ESPAÇO DE DADOS | DATABASE |
| ALED | ALTERAR QUALQUER DATABASEEVENT NOTIFICATION | DATABASE |
| ALFT | ALTERAR QUALQUER FULLTEXT CATALOG | DATABASE |
| ALMT | ALTERAR QUALQUER MESSAGE TYPE | DATABASE |
| ALRL | ALTERAR QUALQUER ROLE | DATABASE |
| ALRT | ALTERAR QUALQUER ROUTE | DATABASE |
| ALSB | ALTERAR QUALQUER REMOTE SERVICE BINDING | DATABASE |
| ALSC | ALTERAR QUALQUER CONTRACT | DATABASE |
| ALSK | ALTERAR QUALQUER SYMMETRIC KEY | DATABASE |
| ALSM | ALTERAR QUALQUER SCHEMA | DATABASE |
| ALSV | ALTERAR QUALQUER SERVICE | DATABASE |
| ALTG | ALTERAR QUALQUER DATABASE DDL TRIGGER | DATABASE |
| ALUS | ALTERAR QUALQUER USER | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | BACKUP DATABASE | DATABASE |
| BALO | BACKUP LOG | DATABASE |
| CL | CONTROL | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECTO, REMOTE SERVICE BINDING, , SYMMETRIC KEYROUTEUSERSCHEMATYPESERVICEROLECERTIFICATEXML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | REPLICAÇÃO DE CONEXÃO | 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 |
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores. CREATE SEQUENCE |
DATABASE |
| CRSV | CREATE SERVICE | DATABASE |
| CRTB | CREATE TABLE | DATABASE |
| CRTY | CREATE TYPE | DATABASE |
| CRVW | CREATE VIEW | DATABASE |
| CRXS |
Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. CREATE XML SCHEMA COLLECTION |
DATABASE |
| DABO | ADMINISTRAR DATABASE OPERAÇÕES EM GRANDE ESCALA | DATABASE |
| DL | DELETE | DATABASE, OBJETO, SCHEMA |
| EAES | EXECUTAR QUALQUER SCRIPT EXTERNO | DATABASE |
| EX | EXECUTE | ASSEMBLY, DATABASE, OBJECTO, SCHEMA, TYPE, XML SCHEMA COLLECTION |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATABASE, OBJETO, SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, ASYMMETRIC KEY, CONTRACTCERTIFICATE, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECTO, SCHEMA, SYMMETRIC KEYTYPE, ,XML SCHEMA COLLECTION |
| SL | SELECT | DATABASE, OBJETO, SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | ASSINAR NOTIFICAÇÕES DE CONSULTA | DATABASE |
| TO | ASSUMA A RESPONSABILIDADE | ASSEMBLY, ASYMMETRIC KEY, CONTRACTCERTIFICATE, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECTO, , TYPEROLESYMMETRIC KEYROUTESCHEMASERVICEREMOTE SERVICE BINDINGXML SCHEMA COLLECTION |
| UP | UPDATE | DATABASE, OBJETO, SCHEMA |
| VW | VIEW DEFINIÇÃO | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECTO, REMOTE SERVICE BINDING, , SYMMETRIC KEYROUTEUSERSCHEMATYPESERVICEROLECERTIFICATEXML SCHEMA COLLECTION |
| VWCK | VIEW QUALQUER COLUMN ENCRYPTION KEY DEFINIÇÃO | DATABASE |
| VWCM | VIEW QUALQUER COLUMN MASTER KEY DEFINIÇÃO | DATABASE |
| VWCT | VIEW RASTREAMENTO DE MUDANÇAS | TABLE, SCHEMA |
| VWDS | VIEW DATABASE ESTADO | DATABASE |
REVOKE e permissões de exceção de colunas
Na maioria dos casos, o REVOKE comando remove a GRANT entrada ou DENY de sys.database_permissions.
No entanto, é possível ou GRANTDENY permissões sobre um objeto e então REVOKE essa permissão sobre uma coluna. Essa permissão de exceção de coluna aparecerá como REVOKE em 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 uma GRANT (na tabela) e uma REVOKE (na coluna).
Important
REVOKE é diferente de DENY, pois o Sales principal 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 poderíamos visualizar o conteúdo da coluna porque DENY sempre substitui GRANT.
Permissions
Qualquer usuário pode ver suas próprias permissões. Para ver permissões para outros usuários, é necessário VIEW DEFINIÇÃO, ALTERAR QUALQUER USER, ou qualquer permissão para um usuário. Para ver papéis definidos pelo usuário, é necessário ALTERAR QUALQUER ROLE, ou a filiação ao papel (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
WHERE pe.class = 1;
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 pe.class = 1
AND 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)