DENY (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

Nega uma permissão a uma entidade de segurança. Impede a entidade de segurança de herdar a permissão através das suas associações de grupo ou de função. DENY tem precedência sobre todas as permissões, exceto que DENY não se aplica a proprietários do objeto nem a membros da função de servidor fixa sysadmin. Observação de segurança Membros da função de servidor fixa sysadmin e proprietários do objeto não podem ter permissões negadas.

Convenções de sintaxe de Transact-SQL

Sintaxe

-- Syntax for SQL Server and Azure SQL Database  
  
-- Simplified syntax for DENY  
DENY   { ALL [ PRIVILEGES ] } 
     | <permission>  [ ( column [ ,...n ] ) ] [ ,...n ]  
    [ ON [ <class> :: ] securable ] 
    TO principal [ ,...n ]   
    [ CASCADE] [ AS principal ]  
[;]

<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{ see the tables below }  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
  
DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{  
      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

ALL
Esta opção não nega todas as permissões possíveis. Negar ALL é equivalente a negar as permissões a seguir.

  • 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 DENY 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. Negue as permissões específicas em vez disso.

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 subtópicos listados a seguir.

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

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

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

TO principal
É o nome de uma entidade. Os principais para os quais as permissões em um protegível podem ser negadas variam, dependendo do protegível. Consulte os tópicos específicos sobre protegíveis listados a seguir para obter as combinações válidas.

CASCADE
Indica que a permissão está sendo negada para o principal especificado e todos os outros principais aos quais o principal concedeu a permissão. Necessário quando o principal tem a permissão com GRANT OPTION.

AS principal
Especifica o principal do qual o principal que executa esta consulta deriva seu direito de negar a permissão. Use a cláusula de entidade de segurança AS para indicar que a entidade de segurança registrada como o negador da permissão deve ser uma entidade de segurança diferente da pessoa que executa a instrução. Por exemplo, suponha que o usuário Maria seja a principal_id 12 e o usuário Ricardo seja a entidade de segurança 15. Melissa executa DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul;. Agora a tabela sys.database_permissions indicará que a grantor_principal_id da instrução de negação era 15 (Ricardo), embora na verdade, a instrução tenha sido executada pelo usuário 13 (Melissa).

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 DENY é complexa. O diagrama de sintaxe acima foi simplificado para chamar atenção para sua estrutura. A sintaxe completa para negar permissões em protegíveis específicos é descrita nos tópicos listados a seguir.

DENY falhará se CASCADE não for especificado ao negar uma permissão a uma entidade de segurança à qual ela foi concedida com GRANT OPTION especificado.

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

No Microsoft Fabric, CREATE USER não pode ser executado explicitamente no momento. Quando GRANT ou DENY for executado, o usuário será criado automaticamente.

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 manter a compatibilidade com versões anteriores. Ela será removida em uma versão futura.

Cuidado

Negar a permissão CONTROL em um banco de dados implicitamente nega a permissão CONNECT no banco de dados. Um principal ao qual é negada a permissão CONTROL em um banco de dados não poderá se conectar a esse banco de dados.

Cuidado

Negar a permissão CONTROL SERVER implicitamente nega a permissão CONNECT SQL no servidor. Um principal ao qual é negada a permissão CONTROL SERVER em um servidor não poderá se conectar a esse servidor.

Permissões

O chamador (ou o principal especificado com a opção AS) deve ter a permissão CONTROL no protegível ou uma permissão superior que indica a permissão CONTROL no protegível. Se usar a cláusula AS, o principal especificado deverá ser proprietário do protegível no qual uma permissão está sendo negada.

Os usuários autorizados da permissão CONTROL SERVER, como os membros da função de servidor fixa sysadmin, podem negar qualquer permissão em qualquer protegível do servidor. Os usuários autorizados da permissão CONTROL no banco de dados, como os membros da função de banco de dados fixa db_owner, podem negar qualquer permissão em qualquer protegível no banco de dados. Os usuários autorizados da permissão CONTROL em um esquema podem negar qualquer permissão no esquema. Se a cláusula AS for usada, o principal especificado deverá ser proprietário do protegível no qual as permissões estão sendo negadas.

Exemplos

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

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

Consulte Também

REVOKE (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)