DENY Permissões de Servidor (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure

Nega permissões em um servidor.

Transact-SQL convenções de sintaxe

Sintaxe

DENY permission [ ,...n ]   
    TO <grantee_principal> [ ,...n ]  
    [ CASCADE ]  
    [ AS <grantor_principal> ]   
  
<grantee_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  
  
<grantor_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  

Argumentos

permissão
Especifica uma permissão que pode ser negada em um servidor. Para obter uma lista das permissões, consulte a seção Comentários mais adiante neste tópico.

CASCATA
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 diretor tem permissão com GRANT a OPTION.

PARA <server_principal>
Especifica a entidade para a qual a permissão é negada.

COMO <grantor_principal>
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.

SQL_Server_login
Especifica um logon do SQL Server.

SQL_Server_login_mapped_to_Windows_login
Especifica um logon do SQL Server mapeado para um logon do Windows.

SQL_Server_login_mapped_to_Windows_group
Especifica um logon do SQL Server mapeado para um grupo do Windows.

SQL_Server_login_mapped_to_certificate
Especifica um logon do SQL Server mapeado para um certificado.

SQL_Server_login_mapped_to_asymmetric_key
Especifica um logon do SQL Server mapeado para uma chave assimétrica.

server_role
Especifica uma função de servidor.

Comentários

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

As informações sobre permissões de servidor podem ser exibidas na exibição de catálogo sys.server_permissions e informações sobre entidades de servidor podem ser exibidas na exibição de catálogo sys.server_principals. As informações sobre a associação de funções de servidor podem ser visualizadas na exibição de catálogo sys.server_role_members.

Um servidor é o nível mais alto da hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em um servidor estão listadas na tabela a seguir.

Permissão do servidor Implícito pela permissão do servidor
ADMINISTRAR OPERAÇÕES EM MASSA SERVIDOR DE CONTROLO
ALTER QUALQUER AVAILABILITY GROUP

Aplica-se a: SQL Server (SQL Server 2012 (11.x) até versão atual).
SERVIDOR DE CONTROLO
ALTERAR QUALQUER LIGAÇÃO SERVIDOR DE CONTROLO
ALTER QUALQUER CREDENTIAL SERVIDOR DE CONTROLO
ALTER QUALQUER DATABASE SERVIDOR DE CONTROLO
ALTER QUALQUER ENDPOINT SERVIDOR DE CONTROLO
ALTER QUALQUER EVENT NOTIFICATION SERVIDOR DE CONTROLO
ALTER QUALQUER EVENT SESSION SERVIDOR DE CONTROLO
ALTERAR QUALQUER SERVIDOR VINCULADO SERVIDOR DE CONTROLO
ALTER QUALQUER LOGIN SERVIDOR DE CONTROLO
ALTER QUALQUER SERVER AUDIT SERVIDOR DE CONTROLO
ALTER QUALQUER SERVER ROLE

Aplica-se a: SQL Server (SQL Server 2012 (11.x) até versão atual).
SERVIDOR DE CONTROLO
RECURSOS ALTER SERVIDOR DE CONTROLO
ESTADO DO SERVIDOR ALTER SERVIDOR DE CONTROLO
CONFIGURAÇÕES DE ALTER SERVIDOR DE CONTROLO
TRAÇADO ALTER SERVIDOR DE CONTROLO
AUTENTICAR SERVIDOR SERVIDOR DE CONTROLO
LIGA QUALQUER DATABASE

Aplica-se a: SQL Server (SQL Server 2014 (12.x) até versão atual).
SERVIDOR DE CONTROLO
CONECTAR SQL SERVIDOR DE CONTROLO
SERVIDOR DE CONTROLO SERVIDOR DE CONTROLO
CRIAR QUALQUER DATABASE ALTER QUALQUER DATABASE
CREATE AVAILABILITY GROUP

Aplica-se a: SQL Server (SQL Server 2012 (11.x) até versão atual).
ALTER QUALQUER AVAILABILITY GROUP
CRIAR DDL EVENT NOTIFICATION ALTER QUALQUER EVENT NOTIFICATION
CREATE ENDPOINT ALTER QUALQUER ENDPOINT
CREATE SERVER ROLE

Aplica-se a: SQL Server (SQL Server 2012 (11.x) até versão atual).
ALTER QUALQUER SERVER ROLE
CRIAR RASTREIO EVENT NOTIFICATION ALTER QUALQUER EVENT NOTIFICATION
ACESSO EXTERNO ASSEMBLY SERVIDOR DE CONTROLO
IMITAR QUALQUER LOGIN

Aplica-se a: SQL Server (SQL Server 2014 (12.x) até versão atual).
SERVIDOR DE CONTROLO
SELECIONE TODOS OS USER VALORES GARANTIDOS

Aplica-se a: SQL Server (SQL Server 2014 (12.x) até versão atual).
SERVIDOR DE CONTROLO
SHUTDOWN SERVIDOR DE CONTROLO
INSEGURO ASSEMBLY SERVIDOR DE CONTROLO
VIEW QUALQUER DATABASE VIEW QUALQUER DEFINIÇÃO
VIEW QUALQUER DEFINIÇÃO SERVIDOR DE CONTROLO
VIEW ESTADO DO SERVIDOR ESTADO DO SERVIDOR ALTER

As três permissões de servidor a seguir foram adicionadas no SQL Server 2014 (12.x).

LIGA QUALQUER DATABASE Permissão
Conceda QUALQUER LIGAÇÃO DATABASE a um login que deve ligar-se a todas as bases de dados existentes e a quaisquer novas bases de dados que possam ser criadas no futuro. Não concede nenhuma permissão em nenhum banco de dados além do connect. Combine com SELECT ALL USER SECURABLES ou VIEW SERVER STATE para permitir que um processo de auditoria visualize todos os dados ou todos os estados da base de dados na instância do SQL Server.

IMITAR QUALQUER LOGIN Permissão
Quando concedido, permite que um processo de camada intermediária represente a conta de clientes que se conectam a ele, à medida que se conecta a bancos de dados. Quando negado, um login com privilégios elevados pode ser impedido de se passar por outros logins. Por exemplo, um login com permissão CONTROL SERVER pode ser impedido de se passar por outros logins.

SELECIONAR TODOS USER Permissão SECURABLES
Quando concedido, um login, como um auditor, pode exibir dados em todos os bancos de dados aos quais o usuário pode se conectar. Quando negado, impede o acesso a objetos, a menos que eles estejam no esquema sys.

Permissões

Requer permissão CONTROL SERVER ou propriedade do protegível. Se você usar a cláusula AS, a entidade de segurança especificada deverá possuir o protegível no qual as permissões estão sendo negadas.

Exemplos

Um. Negando a permissão CONNECT SQL a um logon do SQL Server e entidades às quais o logon foi reconcedido

O exemplo a seguir nega CONNECT SQL permissão para o Annika de logon do SQL Server e para as entidades às quais ela concedeu a permissão.

USE master;  
DENY CONNECT SQL TO Annika CASCADE;  
GO  

B. Negar CREATE ENDPOINT permissão a um login no SQL Server usando a opção AS

O exemplo a seguir nega CREATE ENDPOINT permissão ao usuário ArifS. O exemplo usa a opção AS para especificar MandarP como o principal do qual o principal executor deriva a autoridade para fazê-lo.

USE master;  
DENY CREATE ENDPOINT TO ArifS AS MandarP;  
GO  

Ver também

GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY Permissões de Servidor (Transact-SQL)
REVOKE Permissões de Servidor (Transact-SQL)
Hierarquia de permissões (Mecanismo de Banco de Dados)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)