Permissões (Mecanismo de Banco de Dados)

Cada SQL Server protegível tem permissões associadas que podem ser concedidas a uma entidade de segurança. Este tópico fornece as seguintes informações:

Convenções de nomenclatura de permissões

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

  • CONTROLE

    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

    Permite que o usuário autorizado assuma a propriedade do protegível no qual ele é 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

Para obter um gráfico com tamanho de um cartaz de todas as permissões do Mecanismo de Banco de Dados em formato pdf, consulte https://github.com/microsoft/sql-server-samples/blob/master/samples/features/security/permissions-posters/Microsoft_SQL_Server_2017_and_Azure_SQL_Database_permissions_infographic.pdf.

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

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

Permissão Aplica-se a
SELECT Synonyms

Tabelas e colunas

Funções com valor de tabela, Transact-SQL e CLR (Common Language Runtime) e colunas

Exibições e colunas
VIEW RASTREAMENTO DE MUDANÇAS Tables

Schemas
UPDATE Synonyms

Tabelas e colunas

Exibições e colunas

Objetos de sequência
REFERENCES Funções escalares e agregadas (Transact-SQL e CLR)

Filas do Service Broker

Tabelas e colunas

Funções com valor de tabela (Transact-SQL e CLR) e colunas

Types

Exibições e colunas

Objetos de sequência
INSERT Synonyms

Tabelas e colunas

Exibições e colunas
DELETE Synonyms

Tabelas e colunas

Exibições e colunas
EXECUTE Procedimentos (Transact-SQL e CLR)

Funções escalares e agregadas (Transact-SQL e CLR)

Synonyms

Tipos CLR
RECEIVE Filas do Service Broker
VIEW DEFINIÇÃO Grupos de disponibilidade

Procedimentos (Transact-SQL e CLR)

Filas do Service Broker

Funções escalares e agregadas (Transact-SQL e CLR)

Logons, usuários e funções

Synonyms

Tables

Funções com valor de tabela (Transact-SQL e CLR)

Visões

Objetos de sequência
ALTER Grupos de disponibilidade

Procedimentos (Transact-SQL e CLR)

Funções escalares e agregadas (Transact-SQL e CLR)

Objetos de sequência

Logons, usuários e funções

Filas do Service Broker

Tables

Funções com valor de tabela (Transact-SQL e CLR)

Visões
ASSUMA A RESPONSABILIDADE Grupos de disponibilidade

Funções

Procedimentos (Transact-SQL e CLR)

Funções escalares e agregadas (Transact-SQL e CLR)

Funções de servidor

Synonyms

Tables

Funções com valor de tabela (Transact-SQL e CLR)

Visões

Objetos de sequência
CONTROLE Grupos de disponibilidade

Procedimentos (Transact-SQL e CLR)

Funções escalares e agregadas (Transact-SQL e CLR)

Logons, usuários e funções

Filas do Service Broker

Synonyms

Tables

Funções com valor de tabela (Transact-SQL e CLR)

Visões

Objetos de sequência
IMPERSONATE Logons e usuários

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 de banco de dados SQL e SQL Server

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

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 CONTROLE CL DATABASE CONTROLE
APPLICATION ROLE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ASSEMBLY ALTER AL DATABASE ALTERAR QUALQUER ASSEMBLY
ASSEMBLY CONTROLE CL DATABASE CONTROLE
ASSEMBLY REFERENCES RF DATABASE REFERENCES
ASSEMBLY ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
ASSEMBLY VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ASYMMETRIC KEY ALTER AL DATABASE ALTERAR QUALQUER ASYMMETRIC KEY
ASYMMETRIC KEY CONTROLE CL DATABASE CONTROLE
ASYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
ASYMMETRIC KEY ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
ASYMMETRIC KEY VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
AVAILABILITY GROUP ALTER AL SERVER ALTERAR QUALQUER AVAILABILITY GROUP
AVAILABILITY GROUP CONTROLE 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 CONTROLE CL DATABASE CONTROLE
CERTIFICATE REFERENCES RF DATABASE REFERENCES
CERTIFICATE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
CERTIFICATE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
CONTRACT ALTER AL DATABASE ALTERAR QUALQUER CONTRACT
CONTRACT CONTROLE CL DATABASE CONTROLE
CONTRACT REFERENCES RF DATABASE REFERENCES
CONTRACT ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
CONTRACT VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
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 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 ALTERE QUALQUER DATABASEEVENT SESSION AADS

Observação: aplica-se somente ao Banco de Dados SQL.
SERVER ALTERAR QUALQUER EVENT SESSION
DATABASE ALTERAR QUALQUER ESPAÇO DE DADOS ALDS SERVER SERVIDOR DE CONTROLE
DATABASE ALTERAR QUALQUER FULLTEXT CATALOG ALFT 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

Observação: aplica-se somente ao Banco de Dados SQL.
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 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 CONTROLE CL SERVER SERVIDOR DE CONTROLE
DATABASE CREATE AGGREGATE CRAG SERVER SERVIDOR DE CONTROLE
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 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 VIEW CRVW SERVER SERVIDOR DE CONTROLE
DATABASE CREATE XML SCHEMA COLLECTION CRXS SERVER SERVIDOR DE CONTROLE
DATABASE DELETE DL SERVER SERVIDOR DE CONTROLE
DATABASE EXECUTE EX SERVER SERVIDOR DE CONTROLE
DATABASE INSERT IN SERVER SERVIDOR DE CONTROLE
DATABASE ENCERRAR DATABASE CONEXÃO KIDC

Observação: aplica-se somente ao Banco de Dados SQL. 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 UPDATE PARA CIMA SERVER SERVIDOR DE CONTROLE
DATABASE VIEW DATABASE ESTADO VWDS SERVER VIEW ESTADO DO SERVIDOR
DATABASE VIEW DEFINIÇÃO VW SERVER VIEW QUALQUER DEFINIÇÃO
ENDPOINT ALTER AL SERVER ALTERAR QUALQUER ENDPOINT
ENDPOINT CONNECT CO SERVER SERVIDOR DE CONTROLE
ENDPOINT CONTROLE 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 CONTROLE CL DATABASE CONTROLE
FULLTEXT CATALOG REFERENCES RF DATABASE REFERENCES
FULLTEXT CATALOG ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
FULLTEXT CATALOG VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
FULLTEXT STOPLIST ALTER AL DATABASE ALTERAR QUALQUER FULLTEXT CATALOG
FULLTEXT STOPLIST CONTROLE CL DATABASE CONTROLE
FULLTEXT STOPLIST REFERENCES RF DATABASE REFERENCES
FULLTEXT STOPLIST ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
FULLTEXT STOPLIST VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
LOGIN ALTER AL SERVER ALTERAR QUALQUER LOGIN
LOGIN CONTROLE 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 CONTROLE CL DATABASE CONTROLE
MESSAGE TYPE REFERENCES RF DATABASE REFERENCES
MESSAGE TYPE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
MESSAGE TYPE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
OBJECT ALTER AL SCHEMA ALTER
OBJECT CONTROLE CL SCHEMA CONTROLE
OBJECT DELETE DL SCHEMA DELETE
OBJECT EXECUTE EX SCHEMA EXECUTE
OBJECT INSERT IN SCHEMA INSERT
OBJECT RECEIVE RC SCHEMA CONTROLE
OBJECT REFERENCES RF SCHEMA REFERENCES
OBJECT SELECT SL SCHEMA SELECT
OBJECT ASSUMA A RESPONSABILIDADE TO SCHEMA CONTROLE
OBJECT UPDATE PARA CIMA 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 CONTROLE CL DATABASE CONTROLE
REMOTE SERVICE BINDING ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
REMOTE SERVICE BINDING VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ROLE ALTER AL DATABASE ALTERAR QUALQUER ROLE
ROLE CONTROLE CL DATABASE CONTROLE
ROLE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
ROLE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
ROUTE ALTER AL DATABASE ALTERAR QUALQUER ROUTE
ROUTE CONTROLE CL DATABASE CONTROLE
ROUTE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
ROUTE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
SEARCH PROPERTY LIST ALTER AL SERVER ALTERAR QUALQUER FULLTEXT CATALOG
SEARCH PROPERTY LIST CONTROLE CL SERVER CONTROLE
SEARCH PROPERTY LIST REFERENCES RF SERVER REFERENCES
SEARCH PROPERTY LIST ASSUMA A RESPONSABILIDADE TO SERVER CONTROLE
SEARCH PROPERTY LIST VIEW DEFINIÇÃO VW SERVER VIEW DEFINIÇÃO
SCHEMA ALTER AL DATABASE ALTERAR QUALQUER SCHEMA
SCHEMA CONTROLE CL DATABASE CONTROLE
SCHEMA CREATE SEQUENCE CRSO DATABASE CONTROLE
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 CONTROLE
SCHEMA UPDATE PARA CIMA DATABASE UPDATE
SCHEMA VIEW RASTREAMENTO DE MUDANÇAS VWCT DATABASE VIEW RASTREAMENTO DE MUDANÇAS
SCHEMA VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
SERVER ADMINISTRAR OPERAÇÕES EM MASSA ADBO 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 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 ALTER AVAILABILITY GROUP ALAG 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 CRIAR GRUPO AVAILABILTITY 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 CONTROLE 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 CONTROLE CL DATABASE CONTROLE
SERVICE SEND SN DATABASE CONTROLE
SERVICE ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
SERVICE VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
SYMMETRIC KEY ALTER AL DATABASE ALTERAR QUALQUER SYMMETRIC KEY
SYMMETRIC KEY CONTROLE CL DATABASE CONTROLE
SYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
SYMMETRIC KEY ASSUMA A RESPONSABILIDADE TO DATABASE CONTROLE
SYMMETRIC KEY VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
TYPE CONTROLE CL SCHEMA CONTROLE
TYPE EXECUTE EX SCHEMA EXECUTE
TYPE REFERENCES RF SCHEMA REFERENCES
TYPE ASSUMA A RESPONSABILIDADE TO SCHEMA CONTROLE
TYPE VIEW DEFINIÇÃO VW SCHEMA VIEW DEFINIÇÃO
USER ALTER AL DATABASE ALTERAR QUALQUER USER
USER CONTROLE CL DATABASE CONTROLE
USER IMPERSONATE IM DATABASE CONTROLE
USER VIEW DEFINIÇÃO VW DATABASE VIEW DEFINIÇÃO
XML SCHEMA COLLECTION ALTER AL SCHEMA ALTER
XML SCHEMA COLLECTION CONTROLE CL SCHEMA CONTROLE
XML SCHEMA COLLECTION EXECUTE EX SCHEMA EXECUTE
XML SCHEMA COLLECTION REFERENCES RF SCHEMA REFERENCES
XML SCHEMA COLLECTION ASSUMA A RESPONSABILIDADE TO SCHEMA CONTROLE
XML SCHEMA COLLECTION VIEW DEFINIÇÃO VW SCHEMA VIEW DEFINIÇÃO

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 para sa, dbo, o proprietário da entidade, information_schema, sys ou você 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.

  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.

Exemplos

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

A. Retornando 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 (Transact-SQL).

SELECT * FROM fn_builtin_permissions(default);  
GO  

B. Retornando as 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. Retornando 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 (Transact-SQL).

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

D. Retornando as 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 OBJECT_ID interna é usada para recuperar a ID do objeto Yttrium.

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

Consulte Também

Hierarquia de permissões (Mecanismo de Banco de Dados)
sys.database_permissions (Transact-SQL)