Permissões (Mecanismo de Banco de Dados)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Ponto de extremidade de análise de SQL no Microsoft FabricDepósito no Microsoft FabricBanco de dados SQL no Microsoft Fabric

Cada SQL Server protegível tem permissões associadas que podem ser concedidas a uma entidade de segurança. As permissões no mecanismo de banco de dados são gerenciadas no nível do servidor e atribuídas a funções de logon e de servidor, e no nível do banco de dados, são atribuídas a funções de usuários do banco de dados e funções de banco de dados. O modelo para o Banco de Dados SQL do Azure tem o mesmo sistema para as permissões de banco de dados, mas as permissões no nível do servidor não estão disponíveis. Este artigo contém a lista completa de permissões. Para obter uma implementação típica das permissões, consulte Introdução às permissões do Mecanismo de Banco de Dados.

O número total de permissões para o SQL Server 2022 (16.x) é 292. O Banco de Dados SQL do Azure expõe 292 permissões. A maioria das permissões se aplica a todas as plataformas, mas algumas delas, não. Por exemplo, a maioria das permissões de nível de servidor não podem ser concedidas no banco de dados SQL do Azure, e algumas permissões só fazem sentido no Banco de Dados SQL do Azure. As novas permissões estão sendo introduzidas gradualmente nas novas versões. O SQL Server 2019 (15.x) expõe 248 permissões. O SQL Server 2017 (14.x) expôs 238 permissões. O SQL Server 2016 (13.x) expôs 230 permissões. O SQL Server 2014 (12.x) expôs 219 permissões. O SQL Server 2012 (11.x) expôs 214 permissões. SQL Server 2008 R2 (10.50.x) expôs 195 permissões. O artigo sys.fn_builtin_permissions especifica quais permissões são novas em versões recentes.

No banco de dados SQL no Microsoft Fabric, há suporte apenas para usuários e funções no nível do banco de dados. Logins, funções no nível do servidor e a conta sa não estão disponíveis. No banco de dados SQL no Microsoft Fabric, a ID do Microsoft Entra para usuários do banco de dados é o único método de autenticação com suporte. Para obter mais informações, consulte Autorização no banco de dados SQL no Microsoft Fabric.

Depois de entender as permissões necessárias, você pode aplicar permissões no nível do servidor a logins ou funções de servidor, e permissões no nível do banco de dados a usuários ou funções de banco de dados, usando as instruções GRANT, REVOKE e DENY. Por exemplo:

GRANT SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;
REVOKE SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;

Para obter dicas sobre como planejar um sistema de permissões, consulte Introdução às permissões do Mecanismo de Banco de Dados.

Convenções de nomenclatura de permissões

A seguir, encontram-se as convenções gerais a serem adotadas ao se nomear permissões:

  • CONTROL

    Confere capacidades de propriedade ao usuário autorizado. O usuário autorizado efetivamente tem todas as permissões definidas no protegível. Uma entidade à qual foi concedido CONTROL também pode conceder permissões no protegível. Como o modelo de segurança do SQL Server é hierárquico, CONTROL em um escopo específico inclui implicitamente CONTROL sobre todos os protegíveis naquele escopo. Por exemplo, CONTROL em um banco de dados implica todas as permissões do banco de dados, todas as permissões em todos os assemblies no banco de dados, todas as permissões em todos os esquemas no banco de dados e todas as permissões em objetos de todos os esquemas no banco de dados.

  • ALTER

    Confere a capacidade de alterar as propriedades, menos a propriedade de um protegível específico. Quando concedido em um escopo, ALTER também concede a capacidade de alterar, criar ou descartar qualquer protegível contido naquele escopo. Por exemplo, a permissão ALTER em um esquema inclui a capacidade de criar, alterar e descartar objetos do esquema.

  • ALTER ANY <Server Securable>, onde Server Securable pode ser qualquer protegível do servidor.

    Confere a capacidade de criar, alterar ou remover instâncias individuais do Protegível de Servidor. Por exemplo, ALTER ANY LOGIN confere a capacidade de criar, alterar ou descartar qualquer logon na instância.

  • ALTER ANY <Database Securable>, onde Database Securable pode ser qualquer protegível no nível de banco de dados.

    Confere a capacidade de criar, alterar ou remover instâncias individuais do Protegível do Banco de Dados. Por exemplo, ALTER ANY SCHEMA confere a capacidade de criar, alterar ou descartar qualquer esquema no banco de dados.

  • ASSUMA A RESPONSABILIDADE

    Habilita o usuário autorizado a assumir propriedade do protegível no qual é concedido.

  • IMPERSONATE <Logon>

    Permite que o usuário autorizado represente o logon.

  • IMPERSONATE <Usuário>

    Permite que o usuário autorizado represente o usuário.

  • CREATE <Servidor Protegível>

    Confere ao usuário autorizado a habilidade para criar o Protegível de Servidor.

  • CREATE <Database Securable>

    Confere ao usuário autorizado a habilidade de criar o Protegível de Banco de Dados.

  • CREATE <Protegível contido em esquema>

    Confere a capacidade para criar o protegível contido em esquema. Porém, a permissão ALTER no esquema é necessária para criar o protegível em um esquema específico.

  • VIEW DEFINIÇÃO

    Permite que o usuário autorizado acesse os metadados.

  • REFERENCES

    A permissão REFERENCES em uma tabela é necessária para criar uma restrição FOREIGN KEY que faça referência àquela tabela.

    A permissão REFERENCES é necessária em um objeto para criar um FUNCTION ou VIEW com a cláusula WITH SCHEMABINDING, que faz referência a esse objeto.

Gráfico de permissões do SQL Server

A imagem a seguir mostra as permissões e as relações entre elas. Algumas das permissões de nível superior (como CONTROL SERVER) são listadas várias vezes. Neste artigo, o cartaz é pequeno demais para ser lido. Você pode baixar o Pôster de Permissões do Mecanismo de Banco de Dados em tamanho completo no formato PDF.

Captura de tela do PDF de permissões do Mecanismo de Banco de Dados.

Permissões aplicáveis a protegíveis específicos

A tabela a seguir lista classes principais de permissões e os tipos de protegíveis aos quais elas podem ser aplicadas.

Permission Aplica-se a
ALTER Todas as classes de objetos, exceto TYPE.
CONTROL Todas as classes de objetos:

AGGREGATE,
APPLICATION ROLE,
ASSEMBLY,
ASYMMETRIC KEY,
AVAILABILITY GROUP,
CERTIFICATE,
CONTRACT,
CREDENTIALS,
DATABASE,
DATABASE SCOPED CREDENTIAL,
DEFAULT,
ENDPOINT,
FULLTEXT CATALOG,
FULLTEXT STOPLIST,
FUNCTION,
LOGIN,
MESSAGE TYPE,
PROCEDURE,
QUEUE,
REMOTE SERVICE BINDING,
ROLE,
ROUTE,
RULE,
SCHEMA,
SEARCH PROPERTY LIST,
SERVER,
SERVER ROLE,
SERVICE,
SYMMETRIC KEY,
SYNONYM,
TABLE,
TYPE,
USER,
VIEW, e
XML SCHEMA COLLECTION
DELETE Todas as classes de objetos, exceto DATABASE SCOPED CONFIGURATION, SERVER e TYPE.
EXECUTE Tipos de CLR, scripts externos, procedimentos (Transact-SQL e CLR), funções escalares e de agregação (Transact-SQL e CLR) e sinônimos
IMPERSONATE Logons e usuários
INSERT Sinônimos, tabelas e colunas, exibições e colunas. A permissão pode ser concedida em nível de banco de dados, de esquema ou de objeto.
RECEIVE Filas do Service Broker
REFERENCES AGGREGATE,
ASSEMBLY,
ASYMMETRIC KEY,
CERTIFICATE,
CONTRACT,
CREDENTIAL(aplica-se a SQL Server 2022 (16.x) e posterior),
DATABASE,
DATABASE SCOPED CREDENTIAL,
FULLTEXT CATALOG,
FULLTEXT STOPLIST,
FUNCTION,
MESSAGE TYPE,
PROCEDURE,
QUEUE,
RULE,
SCHEMA,
SEARCH PROPERTY LIST,
SEQUENCE OBJETO
SYMMETRIC KEY,
TABLE,
TYPE,
VIEW, e
XML SCHEMA COLLECTION
SELECT Sinônimos, tabelas e colunas, exibições e colunas. A permissão pode ser concedida em nível de banco de dados, de esquema ou de objeto.
ASSUMA A RESPONSABILIDADE Todas as classes de objetos, exceto DATABASE SCOPED CONFIGURATION, , LOGINSERVER e USER.
UPDATE Sinônimos, tabelas e colunas, exibições e colunas. A permissão pode ser concedida em nível de banco de dados, de esquema ou de objeto.
VIEW RASTREAMENTO DE MUDANÇAS Esquemas e tabelas
VIEW DEFINIÇÃO Todas as classes de objetos, exceto DATABASE SCOPED CONFIGURATION, e SERVER.

Caution

As permissões padrão concedidas aos objetos de sistema no momento da instalação são avaliadas cuidadosamente contra possíveis ameaças e não precisam ser alteradas como parte do sistema de proteção de instalação do SQL Server. Qualquer alteração nas permissões nos objetos de sistema poderia limitar ou interromper a funcionalidade e potencialmente pode deixar a instalação do SQL Server em um estado sem suporte.

Permissões do SQL Server

A tabela a seguir fornece uma lista completa de permissões do SQL Server. As permissões do Banco de Dados SQL do Azure estão disponíveis apenas para protegíveis com suporte. Não é possível dar permissões no nível do servidor no Banco de Dados SQL do Azure, no entanto, permissões de banco de dados são disponibilizadas em alguns casos.

Base protegível Permissões granulares no protegível base Código do tipo de permissão Protegível que contém o protegível base Permissão no protegível de contêiner que implica permissão granular no protegível base
APPLICATION ROLE ALTER AL DATABASE ALTERAR QUALQUER APPLICATION ROLE
APPLICATION ROLE CONTROL CL DATABASE CONTROL
APPLICATION ROLE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ASSEMBLY ALTER AL DATABASE ALTERAR QUALQUER ASSEMBLY
ASSEMBLY CONTROL CL DATABASE CONTROL
ASSEMBLY REFERENCES RF DATABASE REFERENCES
ASSEMBLY ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
ASSEMBLY VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ASYMMETRIC KEY ALTER AL DATABASE ALTERAR QUALQUER ASYMMETRIC KEY
ASYMMETRIC KEY CONTROL CL DATABASE CONTROL
ASYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
ASYMMETRIC KEY ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
ASYMMETRIC KEY VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
AVAILABILITY GROUP ALTER AL SERVER ALTERAR QUALQUER AVAILABILITY GROUP
AVAILABILITY GROUP CONTROL CL SERVER SERVIDOR DE CONTROLE
AVAILABILITY GROUP ASSUMA A RESPONSABILIDADE TO SERVER SERVIDOR DE CONTROLE
AVAILABILITY GROUP VIEW DEFINIÇÃO VW SERVER VIEW QUALQUER DEFINIÇÃO
CERTIFICATE ALTER AL DATABASE ALTERAR QUALQUER CERTIFICATE
CERTIFICATE CONTROL CL DATABASE CONTROL
CERTIFICATE REFERENCES RF DATABASE REFERENCES
CERTIFICATE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
CERTIFICATE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
CONTRACT ALTER AL DATABASE ALTERAR QUALQUER CONTRACT
CONTRACT CONTROL CL DATABASE CONTROL
CONTRACT REFERENCES RF DATABASE REFERENCES
CONTRACT ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
CONTRACT VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
CREDENTIAL CONTROL CL SERVER SERVIDOR DE CONTROLE
CREDENTIAL REFERENCES RF SERVER ALTERAR QUALQUER CREDENTIAL
DATABASE ADMINISTRAR DATABASE OPERAÇÕES EM GRANDE ESCALA DABO SERVER SERVIDOR DE CONTROLE
DATABASE ALTER AL SERVER ALTERAR QUALQUER DATABASE
DATABASE ALTERAR QUALQUER APPLICATION ROLE ALAR SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER ASSEMBLY ALAS SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER ASYMMETRIC KEY ALAK SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER CERTIFICATE ALCF SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER COLUMN ENCRYPTION KEY ALCK

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER COLUMN MASTER KEY ALCM

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER CONTRACT ALSC SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER DATABASE AUDITORIA ALDA SERVER ALTERAR QUALQUER SERVER AUDIT
DATABASE ALTERAR QUALQUER DATABASE DDL TRIGGER ALTG SERVER SERVIDOR DE CONTROLE
DATABASE ALTERE QUALQUER DATABASEEVENT NOTIFICATION ALED SERVER ALTERAR QUALQUER EVENT NOTIFICATION
DATABASE MODIFIQUE QUALQUER DATABASEEVENT SESSION AADS SERVER ALTERAR QUALQUER EVENT SESSION
DATABASE ALTERAR QUALQUER DATABASEEVENT SESSION ADICIONAR EVENTO LDAE SERVER ALTERAR QUALQUER EVENT SESSION ADICIONAR EVENTO
DATABASE ALTERAR QUALQUER DATABASEEVENT SESSION ADICIONAR DESTINO LDAT SERVER ALTERAR QUALQUER EVENT SESSION ADICIONAR DESTINO
DATABASE ALTERAR QUALQUER DATABASEEVENT SESSION DESATIVAR DDES SERVER ALTER ANY EVENT SESSION DISABLE
DATABASE ALTER ANY DATABASEEVENT SESSION DROP EVENT LDDE SERVER ALTER ANY EVENT SESSION DROP EVENT
DATABASE ALTERAR QUALQUER DATABASEEVENT SESSION DESTINO DE EXCLUSÃO LDDT SERVER ALTERAR QUALQUER EVENT SESSION DESTINO DE DESCARTE
DATABASE ALTERAR QUALQUER DATABASEEVENT SESSION ATIVAR EDES SERVER ALTERAR QUALQUER EVENT SESSION HABILITAÇÃO
DATABASE ALTERAR QUALQUER DATABASEEVENT SESSION OPÇÃO LDSO SERVER ALTER ANY EVENT SESSION OPTION
DATABASE ALTERAR QUALQUER DATABASE SCOPED CONFIGURATION ALDC

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER ESPAÇO DE DADOS ALDS SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER EXTERNAL DATA SOURCE AEDS SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER EXTERNAL FILE FORMAT AEFF SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER TRABALHO EXTERNO AESJ SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER EXTERNAL LANGUAGE ALLA SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER EXTERNAL LIBRARY ALEL SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER STREAM EXTERNO AEST SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER FULLTEXT CATALOG ALFT SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER MÁSCARA AAMK

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER MESSAGE TYPE ALMT SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER REMOTE SERVICE BINDING ALSB SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER ROLE ALRL SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER ROUTE ALRT SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER SCHEMA ALSM SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER SECURITY POLICY ALSP

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER SENSITIVITY CLASSIFICATION AASC
Aplica-se a SQL Server (SQL Server 2019 (15.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER SERVICE ALSV SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER SYMMETRIC KEY ALSK SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER USER ALUS SERVER SERVIDOR DE CONTROLE
DATABASE ALTER LEDGER ALR SERVER CONTROL
DATABASE ALTERAR CONFIGURAÇÃO DO REGISTRO ALC SERVER SERVIDOR DE CONTROLE
DATABASE AUTHENTICATE AUTH SERVER AUTENTICAR SERVIDOR
DATABASE BACKUP DATABASE BADB SERVER SERVIDOR DE CONTROLE
DATABASE BACKUP LOG BALO SERVER SERVIDOR DE CONTROLE
DATABASE CHECKPOINT CP SERVER SERVIDOR DE CONTROLE
DATABASE CONNECT CO SERVER SERVIDOR DE CONTROLE
DATABASE REPLICAÇÃO DO CONNECT CORP SERVER SERVIDOR DE CONTROLE
DATABASE CONTROL CL SERVER SERVIDOR DE CONTROLE
DATABASE CREATE AGGREGATE CRAG SERVER SERVIDOR DE CONTROLE
DATABASE CRIE QUALQUER DATABASEEVENT SESSION CRDS SERVER CRIAR QUALQUER EVENT SESSION
DATABASE CREATE ASSEMBLY CRAS SERVER SERVIDOR DE CONTROLE
DATABASE CREATE ASYMMETRIC KEY CRAK SERVER SERVIDOR DE CONTROLE
DATABASE CREATE CERTIFICATE CRCF SERVER SERVIDOR DE CONTROLE
DATABASE CREATE CONTRACT CRSC SERVER SERVIDOR DE CONTROLE
DATABASE CREATE DATABASE CRDB SERVER CRIAR QUALQUER DATABASE
DATABASE CREATE DATABASE DDL EVENT NOTIFICATION CRED SERVER CRIAR DDL EVENT NOTIFICATION
DATABASE CREATE DEFAULT CRDF SERVER SERVIDOR DE CONTROLE
DATABASE CREATE EXTERNAL LANGUAGE CRLA SERVER SERVIDOR DE CONTROLE
DATABASE CREATE EXTERNAL LIBRARY CREL SERVER SERVIDOR DE CONTROLE
DATABASE CREATE FULLTEXT CATALOG CRFT SERVER SERVIDOR DE CONTROLE
DATABASE CREATE FUNCTION CRFN SERVER SERVIDOR DE CONTROLE
DATABASE CREATE MESSAGE TYPE CRMT SERVER SERVIDOR DE CONTROLE
DATABASE CREATE PROCEDURE CRPR SERVER SERVIDOR DE CONTROLE
DATABASE CREATE QUEUE CRQU SERVER SERVIDOR DE CONTROLE
DATABASE CREATE REMOTE SERVICE BINDING CRSB SERVER SERVIDOR DE CONTROLE
DATABASE CREATE ROLE CRRL SERVER SERVIDOR DE CONTROLE
DATABASE CREATE ROUTE CRRT SERVER SERVIDOR DE CONTROLE
DATABASE CREATE RULE CRRU SERVER SERVIDOR DE CONTROLE
DATABASE CREATE SCHEMA CRSM SERVER SERVIDOR DE CONTROLE
DATABASE CREATE SERVICE CRSV SERVER SERVIDOR DE CONTROLE
DATABASE CREATE SYMMETRIC KEY CRSK SERVER SERVIDOR DE CONTROLE
DATABASE CREATE SYNONYM CRSN SERVER SERVIDOR DE CONTROLE
DATABASE CREATE TABLE CRTB SERVER SERVIDOR DE CONTROLE
DATABASE CREATE TYPE CRTY SERVER SERVIDOR DE CONTROLE
DATABASE CREATE USER CUSR SERVER SERVIDOR DE CONTROLE
DATABASE CREATE VIEW CRVW SERVER SERVIDOR DE CONTROLE
DATABASE CREATE XML SCHEMA COLLECTION CRXS SERVER SERVIDOR DE CONTROLE
DATABASE DELETE DL SERVER SERVIDOR DE CONTROLE
DATABASE Solte qualquer DATABASEEVENT SESSION DRDS SERVER Solte qualquer EVENT SESSION
DATABASE ATIVAR LIVRO-RAZÃO EL SERVER CONTROL
DATABASE EXECUTE EX SERVER SERVIDOR DE CONTROLE
DATABASE EXECUTAR QUALQUER COMANDO EXTERNO ENDPOINT EAEE SERVER SERVIDOR DE CONTROLE
DATABASE EXECUTAR QUALQUER SCRIPT EXTERNO EAES

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual)
SERVER SERVIDOR DE CONTROLE
DATABASE INSERT IN SERVER SERVIDOR DE CONTROLE
DATABASE ENCERRAR DATABASE CONEXÃO KIDC

Aplica-se apenas ao Banco de Dados SQL do Azure. Usar ALTER ANY CONNECTION no SQL Server.
SERVER Alterar Qualquer Conexão
DATABASE REFERENCES RF SERVER SERVIDOR DE CONTROLE
DATABASE SELECT SL SERVER SERVIDOR DE CONTROLE
DATABASE SHOWPLAN SPLN SERVER ALTER TRACE
DATABASE ASSINAR NOTIFICAÇÕES DE CONSULTA SUQN SERVER SERVIDOR DE CONTROLE
DATABASE ASSUMA A RESPONSABILIDADE TO SERVER SERVIDOR DE CONTROLE
DATABASE UNMASK UMSK

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER SERVIDOR DE CONTROLE
DATABASE UPDATE UP SERVER SERVIDOR DE CONTROLE
DATABASE VIEW QUALQUER COLUMN ENCRYPTION KEY DEFINIÇÃO VWCK

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER VIEW ESTADO DO SERVIDOR
DATABASE VIEW QUALQUER DEFINIÇÃO COLUMN MASTER KEY VWCM

Aplica-se a SQL Server (SQL Server 2016 (13.x) até a versão atual), Banco de Dados SQL do Azure.
SERVER VIEW ESTADO DO SERVIDOR
DATABASE VIEW QUALQUER SENSITIVITY CLASSIFICATION VASC SERVER SERVIDOR DE CONTROLE
DATABASE VIEW DEFINIÇÃO PROTEGIDA CRIPTOGRAFICAMENTE VCD SERVER VIEW QUALQUER DEFINIÇÃO PROTEGIDA CRIPTOGRAFICAMENTE
DATABASE VIEW DATABASE ESTADO DE DESEMPENHO VDP SERVER VIEW ESTADO DE DESEMPENHO DO SERVIDOR
DATABASE VIEW DATABASE AUDITORIA DE SEGURANÇA VDSA SERVER SERVIDOR DE CONTROLE
DATABASE VIEW DATABASE ESTADO DE SEGURANÇA VDS SERVER VIEW ESTADO DE SEGURANÇA DO SERVIDOR
DATABASE VIEW DATABASE ESTADO VWDS SERVER VIEW ESTADO DO SERVIDOR
DATABASE VIEW DEFINIÇÃO VW SERVER VIEW QUALQUER DEFINIÇÃO
DATABASE VIEW CONTEÚDO DO LIVRO-RAZÃO VLC SERVER CONTROL
DATABASE VIEW DEFINIÇÃO DE SEGURANÇA VWS SERVER VIEW QUALQUER DEFINIÇÃO DE SEGURANÇA
DATABASE VIEW DEFINIÇÃO DE DESEMPENHO VWP SERVER VIEW QUALQUER DEFINIÇÃO DE DESEMPENHO
DATABASE SCOPED CREDENTIAL ALTER AL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL CONTROL CL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL REFERENCES RF DATABASE REFERENCES
DATABASE SCOPED CREDENTIAL ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
DATABASE SCOPED CREDENTIAL VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ENDPOINT ALTER AL SERVER ALTERAR QUALQUER ENDPOINT
ENDPOINT CONNECT CO SERVER SERVIDOR DE CONTROLE
ENDPOINT CONTROL CL SERVER SERVIDOR DE CONTROLE
ENDPOINT ASSUMA A RESPONSABILIDADE TO SERVER SERVIDOR DE CONTROLE
ENDPOINT VIEW DEFINIÇÃO VW SERVER VIEW QUALQUER DEFINIÇÃO
FULLTEXT CATALOG ALTER AL DATABASE ALTERAR QUALQUER FULLTEXT CATALOG
FULLTEXT CATALOG CONTROL CL DATABASE CONTROL
FULLTEXT CATALOG REFERENCES RF DATABASE REFERENCES
FULLTEXT CATALOG ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
FULLTEXT CATALOG VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
FULLTEXT STOPLIST ALTER AL DATABASE ALTERAR QUALQUER FULLTEXT CATALOG
FULLTEXT STOPLIST CONTROL CL DATABASE CONTROL
FULLTEXT STOPLIST REFERENCES RF DATABASE REFERENCES
FULLTEXT STOPLIST ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
FULLTEXT STOPLIST VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
LOGIN ALTER AL SERVER ALTERAR QUALQUER LOGIN
LOGIN CONTROL CL SERVER SERVIDOR DE CONTROLE
LOGIN IMPERSONATE IM SERVER SERVIDOR DE CONTROLE
LOGIN VIEW DEFINIÇÃO VW SERVER VIEW QUALQUER DEFINIÇÃO
MESSAGE TYPE ALTER AL DATABASE ALTERAR QUALQUER MESSAGE TYPE
MESSAGE TYPE CONTROL CL DATABASE CONTROL
MESSAGE TYPE REFERENCES RF DATABASE REFERENCES
MESSAGE TYPE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
MESSAGE TYPE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
OBJECT ALTER AL SCHEMA ALTER
OBJECT CONTROL CL SCHEMA CONTROL
OBJECT DELETE DL SCHEMA DELETE
OBJECT EXECUTE EX SCHEMA EXECUTE
OBJECT INSERT IN SCHEMA INSERT
OBJECT RECEIVE RC SCHEMA CONTROL
OBJECT REFERENCES RF SCHEMA REFERENCES
OBJECT SELECT SL SCHEMA SELECT
OBJECT ASSUMA A RESPONSABILIDADE TO SCHEMA CONTROL
OBJECT UNMASK UMSK SCHEMA UNMASK
OBJECT UPDATE UP SCHEMA UPDATE
OBJECT VIEW RASTREAMENTO DE MUDANÇAS VWCT SCHEMA VIEW RASTREAMENTO DE MUDANÇAS
OBJECT VIEW DEFINIÇÃO VW SCHEMA VIEW DEFINIÇÃO
REMOTE SERVICE BINDING ALTER AL DATABASE ALTERAR QUALQUER REMOTE SERVICE BINDING
REMOTE SERVICE BINDING CONTROL CL DATABASE CONTROL
REMOTE SERVICE BINDING ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
REMOTE SERVICE BINDING VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ROLE ALTER AL DATABASE ALTERAR QUALQUER ROLE
ROLE CONTROL CL DATABASE CONTROL
ROLE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
ROLE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ROUTE ALTER AL DATABASE ALTERAR QUALQUER ROUTE
ROUTE CONTROL CL DATABASE CONTROL
ROUTE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
ROUTE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
SCHEMA ALTER AL DATABASE ALTERAR QUALQUER SCHEMA
SCHEMA CONTROL CL DATABASE CONTROL
SCHEMA CREATE SEQUENCE CRSO DATABASE CONTROL
SCHEMA DELETE DL DATABASE DELETE
SCHEMA EXECUTE EX DATABASE EXECUTE
SCHEMA INSERT IN DATABASE INSERT
SCHEMA REFERENCES RF DATABASE REFERENCES
SCHEMA SELECT SL DATABASE SELECT
SCHEMA ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
SCHEMA UNMASK UMSK DATABASE UNMASK
SCHEMA UPDATE UP DATABASE UPDATE
SCHEMA VIEW RASTREAMENTO DE MUDANÇAS VWCT DATABASE VIEW RASTREAMENTO DE MUDANÇAS
SCHEMA VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
SEARCH PROPERTY LIST ALTER AL SERVER ALTERAR QUALQUER FULLTEXT CATALOG
SEARCH PROPERTY LIST CONTROL CL SERVER CONTROL
SEARCH PROPERTY LIST REFERENCES RF SERVER REFERENCES
SEARCH PROPERTY LIST ASSUMA A RESPONSABILIDADE TO SERVER CONTROL
SEARCH PROPERTY LIST VIEW DEFINIÇÃO VW SERVER VIEW DEFINIÇÃO
SERVER ADMINISTRAR OPERAÇÕES EM MASSA ADBO Não aplicável Não aplicável
SERVER ALTERAR QUALQUER AVAILABILITY GROUP ALAG Não aplicável Não aplicável
SERVER Alterar Qualquer Conexão ALCO Não aplicável Não aplicável
SERVER ALTERAR QUALQUER CREDENTIAL ALCD Não aplicável Não aplicável
SERVER ALTERAR QUALQUER DATABASE ALDB Não aplicável Não aplicável
SERVER ALTERAR QUALQUER ENDPOINT ALHE Não aplicável Não aplicável
SERVER ALTERAR QUALQUER EVENT NOTIFICATION ALES Não aplicável Não aplicável
SERVER ALTERAR QUALQUER EVENT SESSION AAES Não aplicável Não aplicável
SERVER ALTERAR QUALQUER EVENT SESSION ADICIONAR EVENTO LSAE Não aplicável Não aplicável
SERVER ALTERAR QUALQUER EVENT SESSION ADICIONAR DESTINO LSAT Não aplicável Não aplicável
SERVER ALTER ANY EVENT SESSION DISABLE DES Não aplicável Não aplicável
SERVER ALTER ANY EVENT SESSION DROP EVENT LSDE Não aplicável Não aplicável
SERVER ALTERAR QUALQUER EVENT SESSION DESTINO DE DESCARTE LSDT Não aplicável Não aplicável
SERVER ALTERAR QUALQUER EVENT SESSION HABILITAÇÃO EES Não aplicável Não aplicável
SERVER ALTER ANY EVENT SESSION OPTION LESO Não aplicável Não aplicável
SERVER ALTERAR QUALQUER SERVIDOR VINCULADO ALLS Não aplicável Não aplicável
SERVER ALTERAR QUALQUER LOGIN ALLG Não aplicável Não aplicável
SERVER ALTERAR QUALQUER SERVER AUDIT ALAA Não aplicável Não aplicável
SERVER ALTERAR QUALQUER SERVER ROLE ALSR Não aplicável Não aplicável
SERVER ALTERAR RECURSOS ALRS Não aplicável Não aplicável
SERVER ALTERAR ESTADO DO SERVIDOR ALSS Não aplicável Não aplicável
SERVER ALTERAR CONFIGURAÇÕES ALST Não aplicável Não aplicável
SERVER ALTER TRACE ALTR Não aplicável Não aplicável
SERVER AUTENTICAR SERVIDOR AUTH Não aplicável Não aplicável
SERVER CONECTE QUALQUER DATABASE CADB Não aplicável Não aplicável
SERVER CONECTAR SQL COSQ Não aplicável Não aplicável
SERVER SERVIDOR DE CONTROLE CL Não aplicável Não aplicável
SERVER CRIAR QUALQUER DATABASE CRDB Não aplicável Não aplicável
SERVER CREATE AVAILABILITY GROUP CRAC Não aplicável Não aplicável
SERVER CRIAR DDL EVENT NOTIFICATION CRDE Não aplicável Não aplicável
SERVER CREATE ENDPOINT CRHE Não aplicável Não aplicável
SERVER CREATE SERVER ROLE CRSR Não aplicável Não aplicável
SERVER CRIAR RASTREAMENTO EVENT NOTIFICATION CRTE Não aplicável Não aplicável
SERVER ACESSO EXTERNO ASSEMBLY XA Não aplicável Não aplicável
SERVER REPRESENTAR QUALQUER LOGIN IAL Não aplicável Não aplicável
SERVER SELECIONAR TODOS OS USER ITENS PROTEGÍVEIS SUS Não aplicável Não aplicável
SERVER SHUTDOWN SHDN Não aplicável Não aplicável
SERVER INSEGURO ASSEMBLY XU Não aplicável Não aplicável
SERVER VIEW QUALQUER DATABASE VWDB Não aplicável Não aplicável
SERVER VIEW QUALQUER DEFINIÇÃO VWAD Não aplicável Não aplicável
SERVER VIEW ESTADO DO SERVIDOR VWSS Não aplicável Não aplicável
SERVER ROLE ALTER AL SERVER ALTERAR QUALQUER SERVER ROLE
SERVER ROLE CONTROL CL SERVER SERVIDOR DE CONTROLE
SERVER ROLE ASSUMA A RESPONSABILIDADE TO SERVER SERVIDOR DE CONTROLE
SERVER ROLE VIEW DEFINIÇÃO VW SERVER VIEW QUALQUER DEFINIÇÃO
SERVICE ALTER AL DATABASE ALTERAR QUALQUER SERVICE
SERVICE CONTROL CL DATABASE CONTROL
SERVICE SEND SN DATABASE CONTROL
SERVICE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
SERVICE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
SYMMETRIC KEY ALTER AL DATABASE ALTERAR QUALQUER SYMMETRIC KEY
SYMMETRIC KEY CONTROL CL DATABASE CONTROL
SYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
SYMMETRIC KEY ASSUMA A RESPONSABILIDADE TO DATABASE CONTROL
SYMMETRIC KEY VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
TYPE CONTROL CL SCHEMA CONTROL
TYPE EXECUTE EX SCHEMA EXECUTE
TYPE REFERENCES RF SCHEMA REFERENCES
TYPE ASSUMA A RESPONSABILIDADE TO SCHEMA CONTROL
TYPE VIEW DEFINIÇÃO VW SCHEMA VIEW DEFINIÇÃO
USER ALTER AL DATABASE ALTERAR QUALQUER USER
USER CONTROL CL DATABASE CONTROL
USER IMPERSONATE IM DATABASE CONTROL
USER VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
XML SCHEMA COLLECTION ALTER AL SCHEMA ALTER
XML SCHEMA COLLECTION CONTROL CL SCHEMA CONTROL
XML SCHEMA COLLECTION EXECUTE EX SCHEMA EXECUTE
XML SCHEMA COLLECTION REFERENCES RF SCHEMA REFERENCES
XML SCHEMA COLLECTION ASSUMA A RESPONSABILIDADE TO SCHEMA CONTROL
XML SCHEMA COLLECTION VIEW DEFINIÇÃO VW SCHEMA VIEW DEFINIÇÃO

Novas permissões granulares adicionadas ao SQL Server 2022

As seguintes permissões são adicionadas ao SQL Server 2022:

  • Foram adicionadas 10 novas permissões para permitir o acesso aos metadados do sistema.

  • Foram adicionadas 18 novas permissões para eventos estendidos.

  • Foram adicionadas 9 novas permissões quanto a objetos relacionados à segurança.

  • Foram adicionadas 4 permissões para Razão.

  • Mais 3 permissões de banco de dados adicionais.

Para obter mais informações, consulte Novas permissões granulares para SQL Server 2022 e SQL do Azure para melhorar a aderência com o PoLP.

Acesso a permissões de metadados do sistema

Nível do servidor:

  • VIEW QUALQUER DEFINIÇÃO DE SEGURANÇA
  • VIEW QUALQUER DEFINIÇÃO DE DESEMPENHO
  • VIEW ESTADO DE SEGURANÇA DO SERVIDOR
  • VIEW ESTADO DE DESEMPENHO DO SERVIDOR
  • VIEW QUALQUER DEFINIÇÃO PROTEGIDA CRIPTOGRAFICAMENTE

Nível do banco de dados:

  • VIEW DATABASE ESTADO DE SEGURANÇA
  • VIEW DATABASE ESTADO DE DESEMPENHO
  • VIEW DEFINIÇÃO DE SEGURANÇA
  • VIEW DEFINIÇÃO DE DESEMPENHO
  • VIEW DEFINIÇÃO PROTEGIDA CRIPTOGRAFICAMENTE

Permissões de Eventos Estendidos

Nível do servidor:

  • CRIAR QUALQUER EVENT SESSION
  • Solte qualquer EVENT SESSION
  • ALTER ANY EVENT SESSION OPTION
  • ALTERAR QUALQUER EVENT SESSION ADICIONAR EVENTO
  • ALTER ANY EVENT SESSION DROP EVENT
  • ALTERAR QUALQUER EVENT SESSION HABILITAÇÃO
  • ALTER ANY EVENT SESSION DISABLE
  • ALTERAR QUALQUER EVENT SESSION ADICIONAR DESTINO
  • ALTERAR QUALQUER EVENT SESSION DESTINO DE DESCARTE

Todas essas permissões pertencem à mesma permissão pai: ALTER ANY EVENT SESSION

Nível do banco de dados:

  • CRIE QUALQUER DATABASEEVENT SESSION
  • Solte qualquer DATABASEEVENT SESSION
  • ALTERAR QUALQUER DATABASEEVENT SESSION OPÇÃO
  • ALTERAR QUALQUER DATABASEEVENT SESSION ADICIONAR EVENTO
  • ALTER ANY DATABASEEVENT SESSION DROP EVENT
  • ALTERAR QUALQUER DATABASEEVENT SESSION ATIVAR
  • ALTERAR QUALQUER DATABASEEVENT SESSION DESATIVAR
  • ALTERAR QUALQUER DATABASEEVENT SESSION ADICIONAR DESTINO
  • ALTERAR QUALQUER DATABASEEVENT SESSION DESTINO DE EXCLUSÃO

Todas essas permissões estão sob a mesma permissão principal: ALTER ANY DATABASEEVENT SESSION

  • CONTROLE (CREDENTIAL)
  • CREATE LOGIN
  • CREATE USER
  • REFERÊNCIAS (CREDENTIAL)
  • REVELAR (OBJETO)
  • Desmascarar (SCHEMA)
  • VIEW QUALQUER LOG DE ERROS
  • VIEW AUDITORIA DE SEGURANÇA DO SERVIDOR
  • VIEW DATABASE AUDITORIA DE SEGURANÇA

Permissões do livro-razão

  • ALTER LEDGER
  • ALTERAR CONFIGURAÇÃO DO REGISTRO
  • ATIVAR LIVRO-RAZÃO
  • VIEW CONTEÚDO DO LIVRO-RAZÃO

Outras permissões do banco de dados

  • ALTERAR QUALQUER TRABALHO EXTERNO
  • ALTERAR QUALQUER STREAM EXTERNO
  • EXECUTAR QUALQUER COMANDO EXTERNO ENDPOINT

Resumo do algoritmo de verificação de permissão

A verificação de permissões pode ser uma tarefa complexa. O algoritmo de verificação de permissão inclui a sobreposição de associações de grupo e o encadeamento de propriedades, as permissões explícita e implícita, e pode ser afetado pelas permissões em classes de protegíveis que contêm a entidade protegível. O processo geral do algoritmo é coletar todas as permissões pertinentes. Se nenhum bloqueio DENY for encontrado, o algoritmo procurará um GRANT que forneça acesso suficiente. O algoritmo contém três elementos essenciais, o contexto de segurança, o espaço de permissãoe a permissão necessária.

Note

Você não pode conceder, negar ou revogar permissões parasa, dbo, o proprietário da entidade, information_schemasysou a si mesmo.

  • Contexto de segurança

    Este é o grupo de entidades que fornece permissões à verificação de acesso. Essas são permissões relacionadas ao logon ou ao usuário atual, a menos que o contexto de segurança tenha sido alterado para outro logon ou usuário usando a EXECUTE AS instrução. O contexto de segurança inclui as seguintes entidades:

    • O logon

    • O usuário

    • Associações de função

    • Associações de grupo do Windows

    • Se a assinatura de módulo estiver sendo usada, qualquer logon ou conta de usuário do certificado usado para assinar o módulo que está em execução no momento e as associações de função associadas a essa entidade.

  • Espaço de permissão

    É a entidade protegível e qualquer classe protegível que contém o protegível. Por exemplo, uma tabela (uma entidade protegível) é contida pela classe protegível de esquema e pela classe protegível de banco de dados. O acesso pode ser afetado por permissões em nível de tabela, esquema, banco de dados e servidor. Para obter mais informações, veja Hierarquia de permissões (Mecanismo de Banco de Dados).

  • Permissão necessária

    O tipo de permissão exigido. Por exemplo, INSERT, UPDATE, DELETE, SELECT, EXECUTE, ALTER, CONTROL, e assim por diante.

    O acesso pode exigir várias permissões, como as dos exemplos a seguir.

    • Um procedimento armazenado pode exigir tanto a permissão EXECUTE no procedimento armazenado quanto a permissão INSERT em diversas tabelas referenciadas pelo procedimento armazenado.

    • Uma exibição de gerenciamento dinâmico pode exigir tanto a permissão VIEW SERVER STATE quanto a permissão SELECT na exibição.

Etapas gerais do algoritmo

Quando o algoritmo estiver determinando a permissão do acesso a um protegível, as etapas que ele utiliza podem variar, dependendo das entidades e dos protegíveis que estão envolvidos. No entanto, o algoritmo executa as seguintes etapas gerais:

  1. Ignorar a verificação de permissão se o logon for um membro da função de servidor fixa sysadmin ou se o usuário for o usuário dbo no banco de dados atual.

  2. Permite o acesso se o encadeamento de propriedades for aplicável e se a verificação de acesso no objeto anterior da cadeia tiver passado pela verificação de segurança.

  3. Agrega as identidades em nível de servidor e de banco de dados e as identidades do módulo assinado associadas ao chamador para criar o contexto de segurança.

  4. Para esse contexto de segurança, reúna todas as permissões concedidas ou negadas ao espaço de permissão. A permissão pode ser explicitamente declarada como GRANT, GRANT WITH GRANT ou DENY; ou as permissões podem ser uma permissão implícita ou abrangente GRANT ou DENY. Por exemplo, a permissão CONTROL em um esquema implica CONTROL em uma tabela. E CONTROL em uma tabela implica SELECT. Portanto, se CONTROL foi concedida no esquema, SELECT será concedida na tabela. Se CONTROL foi negada na tabela, SELECT será negada na tabela.

    Note

    GRANT Uma permissão no nível da coluna substitui uma DENY no nível do objeto. Para obter mais informações, consulte DENY Permissões de Objeto.

  5. Identifica a permissão necessária.

  6. Falha ao executar a verificação de permissão se a permissão necessária for direta ou implicitamente negada a quaisquer das identidades contidas no contexto de segurança para os objetos do espaço de permissão.

  7. Passe a verificação de permissão se a permissão necessária não foi negada e se a permissão necessária contém uma GRANT ou uma GRANT permissão WITH GRANT direta ou implicitamente para qualquer uma das identidades no contexto de segurança de qualquer objeto no espaço de permissão.

Considerações especiais para permissões no nível da coluna

Permissões em nível de coluna são concedidas com a sintaxe <table_name>(<column _name>). Por exemplo:

GRANT SELECT ON OBJECT::Customer(CustomerName) TO UserJoe;

Um DENY sobre a tabela é substituído por um GRANT em uma coluna. No entanto, uma DENY subsequente na tabela removerá a coluna GRANT.

Examples

Os exemplos nesta seção mostram como recuperar informações sobre permissões.

A. Retornar a lista completa de permissões que podem ser concedidas

A instrução a seguir retorna todas as permissões de mecanismo de banco de dados usando a função fn_builtin_permissions. Para obter mais informações, consulte sys.fn_builtin_permissions.

SELECT * FROM fn_builtin_permissions(default);
GO

B. Retornar permissões em uma classe específica de objetos

O exemplo a seguir usa fn_builtin_permissions para exibir todas as permissões que estão disponíveis para uma categoria de protegível. O exemplo retorna permissões em assemblies.

SELECT * FROM fn_builtin_permissions('assembly');
GO

C. Retornar as permissões concedidas à entidade de segurança em execução em um objeto

O exemplo a seguir usa fn_my_permissions para retornar uma lista das permissões efetivas mantidas pela entidade de chamada em um protegível especificado. O exemplo retorna permissões em um objeto denominado Orders55. Para obter mais informações, consulte sys.fn_my_permissions.

SELECT * FROM fn_my_permissions('Orders55', 'object');
GO

D. Retornar permissões aplicáveis a um objeto especificado

O exemplo a seguir retorna permissões aplicáveis a um objeto denominado Yttrium. Observe que a função interna OBJECT_ID é usada para recuperar o ID do objeto Yttrium.

SELECT * FROM sys.database_permissions
    WHERE major_id = OBJECT_ID('Yttrium');
GO