Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base 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 de nível de objeto correspondente. Se a permissão de coluna for igual à permissão de objeto correspondente, não haverá linha para ela e a permissão aplicada será a do objeto.
Important
As permissões no nível da coluna substituem as permissões no nível do objeto na mesma entidade.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| class | tinyint | Identifica a classe na qual existe permissão. Para obter mais informações, consulte sys.securable_classes (Transact-SQL). 0 = Base de dados 1 = Objeto ou Coluna 3 = Esquema 4 = Principal da Base de Dados 5 = Assembly - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 6 = Tipo 10 = Coleção de esquema 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 = Vinculação de serviço remoto - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 19 = Route - Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores. 23 =Full-Text Catalog - 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 = Fulltext Stoplist - 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 com escopo de 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 da classe na qual existe permissão. 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 da coisa sobre a qual existe permissão, interpretada de acordo com a classe. Normalmente, o major_id simplesmente o tipo de ID que se aplica ao que a classe representa. 0 = A própria base de dados >0 = Object-IDs para objetos de usuário <0 = Object-IDs para objetos do sistema |
| minor_id | int | Secondary-ID de coisa sobre a qual existe permissão, interpretada de acordo com a classe. Muitas vezes, o minor_id é zero, porque não há nenhuma subcategoria disponível para a classe de objeto. Caso contrário, é o Column-ID de uma tabela. |
| grantee_principal_id | int | ID da entidade de banco de dados à qual as permissões são concedidas. |
| grantor_principal_id | int | ID principal do banco de dados do concedente 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 tabela a seguir. |
| permission_name | nvarchar(128) | Nome de permissão. |
| state | char(1) | Estado de permissão: D = Negar R = Revogar G = Subvenção W = Subvenção com opção de subvenção |
| state_desc | nvarchar(60) | Descrição do estado de 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 valores protegíveis |
|---|---|---|
| AADS | ALTERAR QUALQUER DATABASEEVENT SESSION | DATABASE |
| AAMK | ALTERE QUALQUER MÁSCARA | DATABASE |
| AEDS | ALTER QUALQUER EXTERNAL DATA SOURCE | DATABASE |
| AEFF | ALTER QUALQUER EXTERNAL FILE FORMAT | DATABASE |
| AL | ALTER | APPLICATION ROLE, ASSEMBLY, CERTIFICATEASYMMETRIC KEY, CONTRACT, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECTO, , SCHEMAUSERROLEROUTESERVICESYMMETRIC KEYREMOTE SERVICE BINDINGXML SCHEMA COLLECTION |
| ALAK | ALTER QUALQUER ASYMMETRIC KEY | DATABASE |
| ALAR | ALTER QUALQUER APPLICATION ROLE | DATABASE |
| ALAS | ALTER QUALQUER ASSEMBLY | DATABASE |
| ALCF | ALTER QUALQUER CERTIFICATE | DATABASE |
| ALDS | ALTERAR QUALQUER ESPAÇO DE DADOS | DATABASE |
| ALED | ALTERAR QUALQUER DATABASEEVENT NOTIFICATION | DATABASE |
| ALFT | ALTER QUALQUER FULLTEXT CATALOG | DATABASE |
| ALMT | ALTER QUALQUER MESSAGE TYPE | DATABASE |
| ALRL | ALTER QUALQUER ROLE | DATABASE |
| ALRT | ALTER QUALQUER ROUTE | DATABASE |
| ALSB | ALTER QUALQUER REMOTE SERVICE BINDING | DATABASE |
| ALSC | ALTER QUALQUER CONTRACT | DATABASE |
| ALSK | ALTER QUALQUER SYMMETRIC KEY | DATABASE |
| ALSM | ALTER QUALQUER SCHEMA | DATABASE |
| ALSV | ALTER QUALQUER SERVICE | DATABASE |
| ALTG | ALTERAR QUALQUER DATABASE DDL TRIGGER | DATABASE |
| ALUS | ALTER 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, ROLE, ROUTEUSERSCHEMASERVICESYMMETRIC KEYTYPECERTIFICATEXML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | REPLICAÇÃO CONNECT | 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 | ADMINISTRAÇÃO DATABASE DE OPERAÇÕES A GRANEL | DATABASE |
| DL | DELETE | DATABASE, OBJECTO, SCHEMA |
| EAES | EXECUTE QUALQUER SCRIPT EXTERNO | DATABASE |
| EX | EXECUTE | ASSEMBLY, DATABASE, OBJECTO, SCHEMA, TYPE, XML SCHEMA COLLECTION |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATABASE, OBJECTO, SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, ASYMMETRIC KEY, CERTIFICATECONTRACT, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECTO, SCHEMA, SYMMETRIC KEY, TYPE,XML SCHEMA COLLECTION |
| SL | SELECT | DATABASE, OBJECTO, SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | SUBSCREVER NOTIFICAÇÕES DE CONSULTA | DATABASE |
| TO | ASSUMIR A RESPONSABILIDADE | ASSEMBLY, , , , , , , OBJECTO, REMOTE SERVICE BINDING, SYMMETRIC KEYTYPEROLESCHEMASERVICEROUTEMESSAGE TYPEFULLTEXT CATALOGDATABASECONTRACTCERTIFICATEASYMMETRIC KEYXML SCHEMA COLLECTION |
| UP | UPDATE | DATABASE, OBJECTO, SCHEMA |
| VW | VIEW DEFINIÇÃO | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, , OBJECTO, REMOTE SERVICE BINDING, ROLE, ROUTEUSERSCHEMASERVICESYMMETRIC KEYTYPECERTIFICATEXML SCHEMA COLLECTION |
| VWCK | VIEW QUALQUER COLUMN ENCRYPTION KEY DEFINIÇÃO | DATABASE |
| VWCM | VIEW QUALQUER COLUMN MASTER KEY DEFINIÇÃO | DATABASE |
| VWCT | VIEW MONITORIZAÇÃO DE ALTERAÇÕES | TABLE, SCHEMA |
| VWDS | VIEW DATABASE ESTADO | DATABASE |
REVOKE e permissões de exceção de coluna
Na maioria dos casos, o REVOKE comando remove a GRANT entrada ou DENY de sys.database_permissions.
No entanto, é possível GRANT ou DENY permissões sobre um objeto e depois REVOKE essa permissão sobre uma coluna. Esta 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];
Estas 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 pode ainda ter acesso à coluna através de outras permissões. Se tivéssemos negado permissões em vez de as revogar, Sales não conseguiríamos ver o conteúdo da coluna porque DENY sempre se GRANTsobrepõe a .
Permissions
Qualquer usuário pode ver suas próprias permissões. Para ver permissões para outros utilizadores, é necessário VIEW DEFINIÇÃO, ALTERAR QUALQUER USER, ou qualquer permissão sobre um utilizador. Para ver os papéis definidos pelo utilizador, é necessário ALTERAR QUALQUER ROLE, ou a pertença ao papel (como público).
A visibilidade dos metadados em exibições de catálogo é limitada aos protegíveis que um usuário possui ou nos quais o usuário recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.
Examples
A. Listar todas as permissões das entidades de banco de dados
A consulta a seguir lista as permissões explicitamente concedidas ou negadas às entidades de banco de dados.
Important
As permissões de funções de banco de dados fixas não aparecem no sys.database_permissions. Portanto, as entidades de 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 para 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
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 de banco de dados test no banco de dados de exemplo AdventureWorksDW2025:
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';
Devolve 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)
- Visualizações do catálogo de segurança (Transact-SQL)
- Visualizações do catálogo (Transact-SQL)