permissões de objeto REVOKE (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Revoga permissões em uma tabela, exibição, função com valor de tabela, procedimento armazenado, procedimento armazenado estendido, função escalar, função de agregação, fila de serviço ou sinônimo.

Convenções de sintaxe de Transact-SQL

Sintaxe

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON   
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]  
        { FROM | TO } <database_principal> [ ,...n ]   
    [ CASCADE ]  
    [ AS <database_principal> ]  
  
<permission> ::=  
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]  
  
<database_principal> ::=   
        Database_user   
    | Database_role   
    | Application_role   
    | Database_user_mapped_to_Windows_User   
    | Database_user_mapped_to_Windows_Group   
    | Database_user_mapped_to_certificate   
    | Database_user_mapped_to_asymmetric_key   
    | Database_user_with_no_login      

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

permission
Especifica uma permissão que pode ser revogada em um objeto contido em esquema. Para obter uma lista de permissões, consulte a seção Comentários mais adiante neste tópico.

ALL
Revogar ALL não revoga todas as possíveis permissões. Revogar ALL é equivalente a revogar todas as 92 permissões ANSI aplicáveis ao objeto especificado. O significado ALL varia desta forma:

Permissões de função escalar: EXECUTE, REFERENCES.

Permissões de função com valor de tabela: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

Permissões de procedimento armazenado: EXECUTE.

Permissões de tabela: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

Permissões de exibição: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

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

column
Especifica o nome de uma coluna em uma tabela, exibição ou função com valor de tabela na qual a permissão está sendo revogada. Os parênteses ( ) são necessários. Apenas permissões SELECT, REFERENCES e UPDATE podem ser negadas em uma coluna. column pode ser especificada na cláusula de permissões ou depois do nome protegível.

ON [ OBJECT :: ] [ schema_name ] . object_name
Especifica o objeto no qual a permissão está sendo revogada. A frase OBJECT será opcional se schema_name for especificado. Se a frase OBJECT for usada, o qualificador de escopo (::) será necessário. Se schema_name não for especificado, o esquema padrão será usado. Se schema_name for especificado, o qualificador de escopo de esquema (.) será obrigatório.

{ FROM | TO } <database_principal> Especifica a entidade de segurança da qual a permissão está sendo revogada.

GRANT OPTION
Indica que o direito de conceder a permissão especificada a outros principais será revogado. A permissão em si não será revogada.

Importante

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

CASCADE
Indica que a permissão que está sendo revogada também é revogada de outros principais aos quais ela foi concedida ou negada por esse principal.

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 <database_principal> Especifica uma entidade de segurança por meio da qual a entidade de segurança que executa essa consulta obtém seu direito de revogar a permissão.

Database_user
Especifica um usuário do banco de dados.

Database_role
Especifica uma função de banco de dados.

Application_role
Especifica uma função de aplicativo.

Database_user_mapped_to_Windows_User
Especifica um usuário do banco de dados mapeado para um usuário do Windows.

Database_user_mapped_to_Windows_Group
Especifica um usuário do banco de dados mapeado para um grupo do Windows.

Database_user_mapped_to_certificate
Especifica um usuário do banco de dados mapeado para um certificado.

Database_user_mapped_to_asymmetric_key
Especifica um usuário do banco de dados mapeado para uma chave assimétrica.

Database_user_with_no_login
Especifica um usuário do banco de dados sem nenhuma entidade de segurança correspondente no nível de servidor.

Comentários

As informações sobre objetos são visível em várias exibições do catálogo. Para obter mais informações, confira Exibições do catálogo de objeto (Transact-SQL).

Um objeto é um protegível em nível de esquema contido pelo esquema que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser revogadas em um objeto são listadas na tabela a seguir, junto com as permissões mais gerais que as contêm implicitamente.

Permissão de objeto Implícito na permissão de objeto Implícito na permissão de esquema
ALTER CONTROL ALTER
CONTROL CONTROL CONTROL
Delete (excluir) CONTROL Delete (excluir)
Execute CONTROL Execute
INSERT CONTROL INSERT
RECEIVE CONTROL CONTROL
REFERENCES CONTROL REFERENCES
SELECT RECEIVE SELECT
TAKE OWNERSHIP CONTROL CONTROL
UPDATE CONTROL UPDATE
VIEW CHANGE TRACKING CONTROL VIEW CHANGE TRACKING
VIEW DEFINITION CONTROL VIEW DEFINITION

Permissões

Requer a permissão CONTROL no objeto.

Se a cláusula AS for usada, o principal especificado deverá ser proprietário do objeto no qual as permissões estão sendo revogadas.

Exemplos

a. Revogando a permissão SELECT em uma tabela

O exemplo a seguir revoga a permissão SELECT do usuário RosaQdM na tabela Person.Address do AdventureWorks2022 banco de dados.

USE AdventureWorks2022;  
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;  
GO  

B. Revogando a permissão EXECUTE em um procedimento armazenado

O exemplo a seguir revoga a permissão EXECUTE no procedimento armazenado HumanResources.uspUpdateEmployeeHireInfo de uma função de aplicativo chamada Recruiting11.

USE AdventureWorks2022;  
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    FROM Recruiting11;  
GO   

C. Revogando a permissão REFERENCES em uma exibição com CASCADE

O exemplo a seguir revoga a permissão REFERENCES da coluna BusinessEntityID na exibição HumanResources.vEmployee do usuário Wanida com CASCADE.

USE AdventureWorks2022;  
REVOKE REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee   
    FROM Wanida CASCADE;  
GO  

Consulte Também

Permissões de objeto de GRANT (Transact-SQL)
Permissões de objeto DENY (Transact-SQL)
Exibições do catálogo de objeto (Transact-SQL)
Permissões (Mecanismo de Banco de Dados)
Entidades (Mecanismo de Banco de Dados)
Protegíveis
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)