DENY Permissões Principais da Base de Dados (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Nega permissões concedidas em um usuário de banco de dados, função de banco de dados ou função de aplicativo no SQL Server.

Transact-SQL convenções de sintaxe

Syntax

DENY permission [ ,...n ]    
    ON   
    {  [ USER :: database_user ]  
     | [ ROLE :: database_role ]  
     | [ APPLICATION ROLE :: application_role ]  
    }  
    TO <database_principal> [ ,...n ]  
      [ CASCADE ]  
      [ AS <database_principal> ]  
  
<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   

Arguments

permission
Especifica uma permissão que pode ser negada na entidade de banco de dados. Para obter uma lista das permissões, consulte a seção Comentários mais adiante neste tópico.

USER ::database_user
Especifica a classe e o nome do usuário no qual a permissão está sendo negada. O qualificador de escopo (::) é obrigatório.

ROLE ::database_role
Especifica a classe e o nome da função na qual a permissão está sendo negada. O qualificador de escopo (::) é obrigatório.

APPLICATION ROLE ::application_role
Aplica-se a: SQL Server 2008 (10.0.x) e posterior, Banco de dados SQL.

Especifica a classe e o nome da função do aplicativo na qual a permissão está sendo negada. O qualificador de escopo (::) é obrigatório.

CASCADE
Indica que a permissão que está sendo negada também é negada a outras entidades às quais foi concedida por essa entidade de segurança.

COMO database_principal <>
Especifica uma entidade da qual a entidade que executa esta consulta deriva seu direito de revogar a permissão.

Database_user
Especifica um usuário de banco de dados.

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

Application_role
Aplica-se a: SQL Server 2008 (10.0.x) e posterior, Banco de dados SQL.

Especifica uma função de aplicativo.

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

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

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

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

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

Remarks

Permissões de usuário do banco de dados

Um usuário de banco de dados é um protegível no nível de banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em um usuário de banco de dados estão listadas na tabela a seguir, juntamente com as permissões mais gerais que as incluem por implicação.

Permissão de usuário do banco de dados Implícito pela permissão do usuário do banco de dados Implícito pela permissão do banco de dados
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL ALTER QUALQUER USER
VIEW DEFINIÇÃO CONTROL VIEW DEFINIÇÃO

Permissões de função de banco de dados

Uma função de banco de dados é uma proteção no nível de banco de dados contida pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em uma função de banco de dados estão listadas na tabela a seguir, juntamente com as permissões mais gerais que as incluem por implicação.

Permissão de função de banco de dados Implícito pela permissão de função de banco de dados Implícito pela permissão do banco de dados
CONTROL CONTROL CONTROL
ASSUMIR A RESPONSABILIDADE CONTROL CONTROL
ALTER CONTROL ALTER QUALQUER ROLE
VIEW DEFINIÇÃO CONTROL VIEW DEFINIÇÃO

Permissões de função de aplicativo

Uma função de aplicativo é uma proteção no nível de banco de dados contida pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em uma função de aplicativo estão listadas na tabela a seguir, juntamente com as permissões mais gerais que as incluem por implicação.

Permissão de função de aplicativo Implícito pela permissão de função do aplicativo Implícito pela permissão do banco de dados
CONTROL CONTROL CONTROL
ALTER CONTROL ALTER QUALQUER APPLICATION ROLE
VIEW DEFINIÇÃO CONTROL VIEW DEFINIÇÃO

Permissions

Requer a permissão CONTROL na entidade de segurança especificada ou uma permissão superior que implique a permissão CONTROL.

Os beneficiários da permissão CONTROL em um 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.

Examples

A. Negar permissão CONTROL em um usuário para outro usuário

O exemplo seguinte nega CONTROL permissão ao AdventureWorks2025 de utilizador Wanida para RolandXutilizador.

USE AdventureWorks2022;  
DENY CONTROL ON USER::Wanida TO RolandX;  
GO  

B. Negar VIEW permissão de DEFINIÇÃO sobre um papel a um utilizador ao qual foi concedido com GRANT OPTION

O exemplo seguinte nega VIEW DEFINITION permissão no papel SammamishParking AdventureWorks2025 ao utilizador JinghaoLiuda base de dados. A CASCADE opção é especificada porque o utilizador JinghaoLiu recebeu VIEW permissão de DEFINIÇÃO COM GRANT OPÇÃO.

USE AdventureWorks2022;  
DENY VIEW DEFINITION ON ROLE::SammamishParking   
    TO JinghaoLiu CASCADE;  
GO  

C. Negando a permissão IMPERSONATE em um usuário para uma função de aplicativo

O exemplo seguinte nega IMPERSONATE permissão ao utilizador HamithaL para o papel AccountsPayable17de aplicação AdventureWorks2025.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior, Banco de dados SQL.

USE AdventureWorks2022;  
DENY IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

Ver também

GRANT Permissões Principais da Base de Dados (Transact-SQL)
REVOKE Permissões Principais da Base de Dados (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
CREATE ROLE (Transact-SQL)
GRANT (Transact-SQL)
Permissões (Motor de Base de Dados)
Principais (Motor de Base de Dados)