REVOKE (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Remove uma permissão concedida ou negada anteriormente.

Convenções de sintaxe de Transact-SQL

Sintaxe

-- Syntax for SQL Server and Azure SQL Database  
  
-- Simplified syntax for REVOKE  
REVOKE [ GRANT OPTION FOR ]  
      {   
        [ ALL [ PRIVILEGES ] ]  
        |  
                permission [ ( column [ ,...n ] ) ] [ ,...n ]  
      }  
      [ ON [ class :: ] securable ]   
      { TO | FROM } principal [ ,...n ]   
      [ CASCADE] [ AS principal ]  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
  
REVOKE   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

GRANT OPTION FOR
Indica que a habilidade de conceder a permissão especificada será revogada. Isso é necessário quando você está usando o argumento CASCADE.

Importante

Se a entidade de segurança tiver a permissão especificada sem a opção GRANT, a própria permissão será revogada.

ALL
Aplica-se a: SQL Server 2008 (10.0.x) e posterior

Esta opção não revoga todas as permissões possíveis. A revogação ALL é equivalente a revogar as seguintes permissões.

  • Se o protegível for um banco de dados, ALL será equivalente a BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE e CREATE VIEW.

  • Se o protegível for uma função escalar, ALL será equivalente a EXECUTE e REFERENCES.

  • Se o protegível for uma função com valor de tabela, ALL será equivalente a DELETE, INSERT, REFERENCES, SELECT e UPDATE.

  • Se o protegível for um procedimento armazenado, ALL será equivalente a EXECUTE.

  • Se o protegível for uma tabela, ALL será equivalente a DELETE, INSERT, REFERENCES, SELECT e UPDATE.

  • Se o protegível for uma exibição, ALL será equivalente a DELETE, INSERT, REFERENCES, SELECT e UPDATE.

Observação

A sintaxe de REVOKE ALL é preterida. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso, revogue permissões específicas.

PRIVILEGES
Incluído para conformidade com ISO. Não altera o comportamento de ALL.

permission
É o nome de uma permissão. Os mapeamentos válidos de permissões para protegíveis são descritos nos tópicos listados em Sintaxe específica a protegível mais adiante neste tópico.

column
Especifica o nome de uma coluna em uma tabela na qual estão sendo revogadas permissões. Os parênteses são necessários.

class
Especifica a classe do protegível na qual a permissão está sendo revogada. O qualificador de escopo :: é obrigatório.

securable
Especifica o protegível no qual a permissão está sendo revogada.

TO | FROM principal
É o nome de uma entidade. As entidades das quais permissões em um protegível podem ser revogadas variam, dependendo do protegível. Para obter mais informações sobre combinações válidas, veja os tópicos listados em Sintaxe específica a protegível mais adiante neste tópico.

CASCADE
Indica que a permissão que está sendo revogada também será revogada de outras entidades para as quais ela foi concedida por essa entidade. Ao usar o argumento CASCADE, você também deve incluir o argumento GRANT OPTION FOR.

Cuidado

A revogação em cascata de uma permissão WITH GRANT OPTION concedida revogará as opções GRANT e DENY dessa permissão.

AS principal
Use a cláusula de entidade de segurança AS para indicar que você está revogando uma permissão que foi concedida por uma entidade de segurança que não você. Por exemplo, suponha que o usuário Maria seja a principal_id 12 e o usuário Ricardo seja a principal_id 15. Tanto Maria quanto Ricardo concedem a um usuário chamado Estevão a mesma permissão. A tabela database_permissions indicará as permissões duas vezes, mas elas terão, cada uma, um valor de grantor_principal_id diferente. Maria pode revogar a permissão usando o AS RAUL cláusula para remover a concessão de Ricardo da permissão.

O uso de AS nessa instrução não implica a capacidade de representar outro usuário.

Comentários

A sintaxe completa da instrução REVOKE é complexa. O diagrama de sintaxe acima foi simplificado para chamar atenção para sua estrutura. A sintaxe completa para revogação de permissões em protegíveis específicos é descrita nos tópicos listados em Sintaxe específica a protegível mais adiante neste tópico.

A instrução REVOKE pode ser usada para remover permissões concedidas, e a instrução DENY pode ser usada para evitar que uma entidade ganhe uma permissão específica por meio de um GRANT.

A concessão de uma permissão remove DENY ou REVOKE daquela permissão no protegível especificado. Se a mesma permissão for negada a um escopo mais alto que contém o protegível, o DENY terá precedência. No entanto a revogação da permissão concedida em um escopo mais alto não tem precedência.

Cuidado

Um DENY em nível de tabela não tem precedência sobre um GRANT em nível de coluna. Essa inconsistência na hierarquia de permissões foi preservada para compatibilidade com versões anteriores. Ela será removida em uma versão futura.

O procedimento armazenado do sistema sp_helprotect relata permissões em um protegível no nível de banco de dados

A instrução REVOKE falhará se CASCADE não estiver especificado ao revogar uma permissão de uma entidade que recebeu aquela permissão com GRANT OPTION especificada.

Permissões

As entidades com a permissão CONTROL em um protegível podem revogar a permissão naquele protegível. Os proprietários de objetos podem revogar permissões nos objetos de sua propriedade.

Os usuários autorizados da permissão CONTROL SERVER, como os membros da função de servidor fixa sysadmin, podem revogar qualquer permissão em qualquer protegível do servidor. Os usuários autorizados da permissão CONTROL em um banco de dados, como os membros da função de banco de dados fixa db_owner, podem revogar qualquer permissão para qualquer item de segurança do banco de dados. Os usuários autorizados da permissão CONTROL em um esquema podem revogar qualquer permissão em qualquer objeto dentro do esquema.

Sintaxe específica a protegível

A tabela a seguir lista os protegíveis e os tópicos que descrevem a sintaxe específica a protegíveis.

Protegível Tópico
Função de aplicativo Permissões de principal do banco de dados REVOKE (Transact-SQL)
Assembly Permissões de assembly REVOKE (Transact-SQL)
Chave assimétrica Permissões de chave assimétrica REVOKE (Transact-SQL)
Grupo de disponibilidade Permissões de grupo de disponibilidade REVOKE (Transact-SQL)
Certificado Permissões de certificado REVOKE (Transact-SQL)
Contrato Permissões REVOKE do Service Broker (Transact-SQL)
Banco de dados Permissões de banco de dados REVOKE (Transact-SQL)
Ponto de extremidade Permissões de ponto de extremidade REVOKE (Transact-SQL)
Credencial no escopo do banco de dados Credencial REVOKE no escopo do banco de dados (Transact-SQL)
Catálogo de texto completo Permissões de texto completo REVOKE (Transact-SQL)
Lista de palavras irrelevantes de texto completo Permissões de texto completo REVOKE (Transact-SQL)
Função permissões de objeto REVOKE (Transact-SQL)
Logon Permissões do principal do servidor REVOKE (Transact-SQL)
Tipo de mensagem Permissões REVOKE do Service Broker (Transact-SQL)
Objeto permissões de objeto REVOKE (Transact-SQL)
Fila permissões de objeto REVOKE (Transact-SQL)
Associação de serviço remoto Permissões REVOKE do Service Broker (Transact-SQL)
Função Permissões de principal do banco de dados REVOKE (Transact-SQL)
Rota Permissões REVOKE do Service Broker (Transact-SQL)
Esquema Permissões de esquema REVOKE (Transact-SQL)
Lista de propriedades de pesquisa Permissões de lista de propriedades de pesquisa REVOKE (Transact-SQL)
Servidor Permissões REVOKE de servidor (Transact-SQL)
Serviço Permissões REVOKE do Service Broker (Transact-SQL)
Procedimento armazenado permissões de objeto REVOKE (Transact-SQL)
Chave simétrica Permissões de chave simétrica REVOKE (Transact-SQL)
Sinônimo permissões de objeto REVOKE (Transact-SQL)
Objetos do sistema Permissões de objeto do sistema REVOKE (Transact-SQL)
Tabela permissões de objeto REVOKE (Transact-SQL)
Tipo Permissões de tipo REVOKE (Transact-SQL)
Usuário Permissões de principal do banco de dados REVOKE (Transact-SQL)
Visualizar permissões de objeto REVOKE (Transact-SQL)
Coleção de esquema XML Permissões de coleção de esquema REVOKE XML (Transact-SQL)

Exemplos

a. Conceder e revogar

Aplica-se a: SQL Server, Banco de Dados SQL

O exemplo a seguir cria um esquema, um usuário de banco de dados independente e uma nova função em um banco de dados de usuário. Ele adiciona o usuário à função, concede à função a permissão SELECT no esquema e, em seguida, remove (REVOKE) essa permissão concedida à função.

CREATE SCHEMA Sales;  
GO
CREATE USER Joe without login;
GO
CREATE ROLE Vendors;
GO
ALTER ROLE Vendors ADD MEMBER Joe; 
GO
GRANT SELECT ON SCHEMA :: Sales TO Vendors;
GO
REVOKE SELECT ON SCHEMA :: Sales TO Vendors;
GO
 

Consulte Também

Hierarquia de permissões (Mecanismo de Banco de Dados)
DENY (Transact-SQL)
GRANT (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)