Partilhar via


NEGAR (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Nega uma permissão a uma entidade de segurança. Impede que essa entidade herde a permissão por meio de suas associações de grupo ou função. DENY tem precedência sobre todas as permissões, exceto que DENY não se aplica a proprietários de objetos ou membros da função de servidor fixa sysadmin. Nota sobre segurança Os membros da função de servidor fixa sysadmin e os proprietários de objetos não podem ter permissões negadas."

Transact-SQL convenções de sintaxe

Syntax

Sintaxe para SQL Server, Banco de Dados SQL do Azure e Banco de Dados SQL de Malha

 
-- 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 }  

Sintaxe para o Azure Synapse Analytics e o Parallel Data Warehouse e o Microsoft Fabric warehouse

DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Arguments

ALL
Esta opção não nega todas as permissões possíveis. Negar TUDO equivale a negar as seguintes permissões.

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

  • Se o securable é uma função escalar, ALL significa EXECUTAR e REFERÊNCIAS.

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

  • Se o protegível for um procedimento armazenado, ALL significa EXECUTAR.

  • Se o protegível for uma tabela, ALL significa DELETE, INSERT, REFERENCES, SELECT e UPDATE.

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

Note

A sintaxe DENY ALL foi preterida. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Em vez disso, negue permissões específicas.

PRIVILEGES
Incluído para conformidade ISO. Não altera o comportamento da 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 abaixo.

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

class
Especifica a classe do protegível na qual 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 diretor
É o nome de uma entidade de segurança. Os princípios aos quais as permissões em um protegível podem ser negadas variam, dependendo do protegível. Consulte os tópicos específicos de proteção listados abaixo para obter combinações válidas.

CASCADE
Indica que a permissão é negada à entidade de segurança especificada e a todas as outras entidades às quais a entidade concedeu a permissão. Obrigatório quando o principal tem a permissão com GRANT OPTION.

Diretor AS
Especifica a entidade de segurança da qual a entidade que executa esta consulta deriva seu direito de negar a permissão. Use a cláusula principal AS para indicar que o principal registrado como o negador da permissão deve ser um comitente diferente da pessoa que executa a declaração. Por exemplo, suponha que o usuário Mary é principal_id 12 e o usuário Raul é o principal 15. Maria executa DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Agora a tabela sys.database_permissions indicará que o grantor_principal_id da declaração de negação foi 15 (Raul), embora a declaração tenha sido realmente executada pelo usuário 13 (Maria).

O uso de AS nesta declaração não implica a capacidade de se passar por outro usuário.

Remarks

A sintaxe completa da instrução DENY é complexa. O diagrama de sintaxe acima foi simplificado para chamar a atenção para a sua estrutura. A sintaxe completa para negar permissões em protegíveis específicos é descrita nos tópicos listados abaixo.

DENY falhará se CASCADE não for especificado ao negar uma permissão a uma entidade de segurança que recebeu essa permissão com GRANT OPTION especificado.

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

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

Caution

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

Caution

Negar a permissão CONTROL em um banco de dados nega implicitamente a permissão CONNECT no banco de dados. Uma entidade de segurança à qual é negada a permissão CONTROL em um banco de dados não poderá se conectar a esse banco de dados.

Caution

Negar a permissão CONTROL SERVER nega implicitamente a permissão CONNECT SQL no servidor. Uma entidade de segurança à qual é negada a permissão CONTROL SERVER em um servidor não poderá se conectar a esse servidor.

Permissions

O chamador (ou o principal especificado com a opção AS) deve ter permissão CONTROL no protegível ou uma permissão superior que implique permissão CONTROL no protegível. Se estiver usando a opção AS, a entidade de segurança especificada deverá possuir o protegível no qual uma permissão está sendo negada.

Os beneficiários da permissão CONTROL SERVER, como membros da função de servidor fixa sysadmin, podem negar qualquer permissão em qualquer protegível no servidor. Os beneficiários da permissão CONTROL no banco de dados, como 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 beneficiários da permissão CONTROL em um esquema podem negar qualquer permissão em qualquer objeto no esquema. Se a cláusula AS for usada, a entidade de segurança especificada deverá possuir o protegível no qual as permissões estão sendo negadas.

Examples

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

Securables Syntax
Função de Aplicação Permissões principais do banco de dados DENY (Transact-SQL)
Assembly Permissões de montagem DENY (Transact-SQL)
Chave assimétrica DENY Permissões de chave assimétrica (Transact-SQL)
Grupo de Disponibilidade Permissões do grupo de disponibilidade DENY (Transact-SQL)
Certificate Permissões de certificado DENY (Transact-SQL)
Contract NEGAR permissões do Service Broker (Transact-SQL)
Database Permissões de banco de dados DENY (Transact-SQL)
Credencial com escopo de banco de dados Credencial com escopo de banco de dados DENY (Transact-SQL)
Endpoint Permissões de ponto de extremidade DENY (Transact-SQL)
Catálogo Full-Text NEGAR Full-Text permissões (Transact-SQL)
Full-Text Lista de Paradas NEGAR Full-Text permissões (Transact-SQL)
Function NEGAR Permissões de Objeto (Transact-SQL)
Login NEGAR permissões do principal do servidor (Transact-SQL)
Tipo de mensagem NEGAR permissões do Service Broker (Transact-SQL)
Object NEGAR Permissões de Objeto (Transact-SQL)
Queue NEGAR Permissões de Objeto (Transact-SQL)
Vinculação de serviço remoto NEGAR permissões do Service Broker (Transact-SQL)
Role Permissões principais do banco de dados DENY (Transact-SQL)
Route NEGAR permissões do Service Broker (Transact-SQL)
Schema Permissões de esquema DENY (Transact-SQL)
Pesquisar Lista de Propriedades DENY Pesquisar Permissões de Lista de Propriedades (Transact-SQL)
Server Permissões do servidor DENY (Transact-SQL)
Service NEGAR permissões do Service Broker (Transact-SQL)
Procedimento armazenado NEGAR Permissões de Objeto (Transact-SQL)
Chave Simétrica Permissões de chave simétrica DENY (Transact-SQL)
Synonym NEGAR Permissões de Objeto (Transact-SQL)
Objetos do sistema NEGAR permissões de objeto do sistema (Transact-SQL)
Table NEGAR Permissões de Objeto (Transact-SQL)
Tipo Permissões de tipo DENY (Transact-SQL)
User Permissões principais do banco de dados DENY (Transact-SQL)
View NEGAR Permissões de Objeto (Transact-SQL)
Coleção de esquema XML Permissões de coleção de esquema XML DENY (Transact-SQL)

Ver também

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