Permissões de principal do servidor DENY (Transact-SQL)

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

Nega permissões concedidas em um logon do SQL Server.

Convenções de sintaxe de Transact-SQL

Sintaxe

DENY permission [ ,...n ] }   
    ON   
    { [ LOGIN :: SQL_Server_login ]  
      | [ SERVER ROLE :: server_role ] }   
    TO <server_principal> [ ,...n ]  
    [ CASCADE ]  
    [ AS SQL_Server_login ]   
  
<server_principal> ::=   
    SQL_Server_login  
    | SQL_Server_login_from_Windows_login   
    | SQL_Server_login_from_certificate   
    | SQL_Server_login_from_AsymKey   
    | server_role  

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 negada em um logon do SQL Server. Para obter uma lista de permissões, consulte a seção Comentários mais adiante neste tópico.

LOGIN ::SQL_Server_login
Especifica o logon do SQL Server no qual a permissão está sendo negada. O qualificador de escopo ( :: ) é obrigatório.

SERVER ROLE ::server_role
Especifica a função de servidor na qual a permissão está sendo negada. O qualificador de escopo ( :: ) é obrigatório.

TO <server_principal>
Especifica o logon do SQL Server ou função de servidor ao qual a permissão está sendo concedida.

TO SQL_Server_login
Especifica o logon do SQL Server ao qual a permissão está sendo negada.

SQL_Server_login
Especifica o nome de um logon do SQL Server.

SQL_Server_login_from_Windows_login
Especifica o nome de um logon do SQL Server criado a partir de um logon do Windows.

SQL_Server_login_from_certificate
Especifica o nome de um logon do SQL Server mapeado para um certificado.

SQL_Server_login_from_AsymKey
Especifica o nome de um logon do SQL Server mapeado para uma chave assimétrica.

server_role
Especifica o nome da função de servidor.

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

AS SQL_Server_login
Especifica o logon do SQL Server do qual o principal que executa esta consulta deriva seu direito de negar a permissão.

Comentários

As permissões no escopo de servidor podem ser negadas somente quando o banco de dados atual é mestre.

As informações sobre permissões de servidor estão visíveis na exibição do catálogo sys.server_permissions. As informações sobre principais de servidor estão disponíveis na exibição do catálogo sys.server_principals.

A instrução DENY falhará se CASCADE não for especificado ao negar uma permissão a um principal ao qual ela foi concedida com GRANT OPTION especificado.

Os logons e as funções de servidor do SQL Server são protegíveis no nível do servidor. As permissões mais específicas e limitadas que podem ser negadas em um logon do SQL Server ou função de servidor são listadas na tabela a seguir, junto com as permissões mais gerais que as contêm implicitamente.

Logon do SQL Server ou função de servidor Sugerido pelo logon do SQL Server ou função de servidor Implícito na permissão de servidor
CONTROL CONTROL CONTROL SERVER
IMPERSONATE CONTROL CONTROL SERVER
VIEW DEFINITION CONTROL VIEW ANY DEFINITION
ALTER CONTROL ALTER ANY LOGIN

ALTER ANY SERVER ROLE

Permissões

Para logons, requer a permissão CONTROL no logon ou a permissão ALTER ANY LOGIN no servidor.

Para funções de servidor, requer a permissão CONTROL na função de servidor ou a permissão ALTER ANY SERVER ROLE no servidor.

Exemplos

a. Negando a permissão IMPERSONATE em um logon

O exemplo a seguir nega a permissão IMPERSONATE no logon WanidaBenshoof do SQL Server para um logon do SQL Server criado a partir do usuário do Windows AdvWorks\YoonM.

USE master;  
DENY IMPERSONATE ON LOGIN::WanidaBenshoof TO [AdvWorks\YoonM];  
GO  

B. Negando a permissão VIEW DEFINITION com CASCADE

O exemplo a seguir nega a permissão VIEW DEFINITION no logon EricKurjan do SQL Server para o logon RMeyyappan do SQL Server. A opção CASCADE indica que a permissão VIEW DEFINITION em EricKurjan também será negada a principais aos quais RMeyyappan concedeu essa permissão.

USE master;  
DENY VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan   
    CASCADE;  
GO   

C. Negando a permissão VIEW DEFINITION em uma função de servidor

O exemplo a seguir nega o VIEW DEFINITION na função de servidor Sales à função de servidor Auditors.

USE master;  
DENY VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;  
GO   

Consulte Também

sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
Permissões de entidade de segurança do servidor GRANT (Transact-SQL)
Permissões do principal do servidor REVOKE (Transact-SQL)
CREATE LOGIN (Transact-SQL)
Entidades (Mecanismo de Banco de Dados)
Permissões (Mecanismo de Banco de Dados)
Funções de segurança (Transact-SQL)
Procedimentos armazenados de segurança (Transact-SQL)