DENY Permissões de Servidor (Transact-SQL)

Aplica-se a: SQL ServerAzure SQL Managed Instance

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 Observações.

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. Exigido quando o diretor tem permissão com GRANT 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 AS cláusula principal para indicar que o principal registado como negador da permissão deve ser um principal diferente da pessoa que executa a declaração. Por exemplo, presume que o utilizador Mary tem principal_id 12 anos e o utilizador Raul é o principal 15. Mary executa DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Agora a sys.database_permissions tabela indicará que a grantor_principal_id declaração de negação era 15 (Raul), embora a declaração tenha sido realmente executada pelo utilizador 13 (Mary).

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

Permissões no âmbito do servidor só podem ser negadas quando a base de dados atual é master.

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.

No Base de Dados SQL do Azure, GRANT, REVOKE, e DENY as permissões ao nível do servidor não são suportadas.

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
ADMINISTER BULK OPERATIONS CONTROL SERVER
ALTER ANY AVAILABILITY GROUP

Aplica-se a: SQL Server (SQL Server 2012 (11.x) até versão atual).
CONTROL SERVER
ALTER ANY CONNECTION CONTROL SERVER
ALTER ANY CREDENTIAL CONTROL SERVER
ALTER ANY DATABASE CONTROL SERVER
ALTER ANY ENDPOINT CONTROL SERVER
ALTER ANY EVENT NOTIFICATION CONTROL SERVER
ALTER ANY EVENT SESSION CONTROL SERVER
ALTER ANY LINKED SERVER CONTROL SERVER
ALTER ANY LOGIN CONTROL SERVER
ALTER ANY SERVER AUDIT CONTROL SERVER
ALTER ANY SERVER ROLE

Aplica-se a: SQL Server (SQL Server 2012 (11.x) até versão atual).
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
ALTER SERVER STATE CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
AUTHENTICATE SERVER CONTROL SERVER
LIGA QUALQUER DATABASE

Aplica-se a: SQL Server (SQL Server 2014 (12.x) até versão atual).
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY DATABASE
CREATE AVAILABILITY GROUP

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

Aplica-se a: SQL Server (SQL Server 2012 (11.x) até versão atual).
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLY CONTROL SERVER
IMPERSONATE ANY LOGIN

Aplica-se a: SQL Server (SQL Server 2014 (12.x) até versão atual).
CONTROL SERVER
SELECT ALL USER SECURABLES

Aplica-se a: SQL Server (SQL Server 2014 (12.x) até versão atual).
CONTROL SERVER
SHUTDOWN CONTROL SERVER
UNSAFE ASSEMBLY CONTROL SERVER
VIEW ANY DATABASE VIEW ANY DEFINITION
VIEW ANY DEFINITION CONTROL SERVER
VIEW ANY PERFORMANCE DEFINITION

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.
VIEW ANY DEFINITION
VIEW ANY SECURITY DEFINITION

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.
VIEW ANY DEFINITION
VIEW SERVER PERFORMANCE STATE

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.
VIEW SERVER STATE
VIEW SERVER SECURITY STATE

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.
VIEW SERVER STATE
VIEW SERVER STATE ALTER SERVER STATE

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

  • CONNECT ANY DATABASE permissão

    • Conceda CONNECT ANY 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.
  • IMPERSONATE ANY 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 CONTROL SERVER permissão pode ser impedido de se fazer passar por outros logins.
  • SELECT ALL USER SECURABLES permissão

    • 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 estejam no sys esquema.

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. Negar a permissão SQL do CONNECT a um login do SQL Server e aos princípios aos quais o login foi reconcedido

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

USE master;  
DENY CONNECT SQL TO Test CASCADE;  
GO  

B. Negar CREATE ENDPOINT permissão para iniciar sessão no SQL Server usando a opção AS

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

USE master;  
DENY CREATE ENDPOINT TO Test1 AS Test2;  
GO