Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure 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 GROUPAplica-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 ROLEAplica-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 ROLEAplica-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 LOGINAplica-se a: SQL Server (SQL Server 2014 (12.x) até versão atual). |
CONTROL SERVER |
SELECT ALL USER SECURABLESAplica-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 DEFINITIONAplica-se a: SQL Server 2022 (16.x) e versões posteriores. |
VIEW ANY DEFINITION |
VIEW ANY SECURITY DEFINITIONAplica-se a: SQL Server 2022 (16.x) e versões posteriores. |
VIEW ANY DEFINITION |
VIEW SERVER PERFORMANCE STATEAplica-se a: SQL Server 2022 (16.x) e versões posteriores. |
VIEW SERVER STATE |
VIEW SERVER SECURITY STATEAplica-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 DATABASEpermissão- Conceda
CONNECT ANY DATABASEa 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 comSELECT ALL USER SECURABLESouVIEW SERVER STATEpara permitir que um processo de auditoria visualize todos os dados ou todos os estados da base de dados na instância do SQL Server.
- Conceda
IMPERSONATE ANY LOGINpermissã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 SERVERpermissão pode ser impedido de se fazer passar por outros logins.
- 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
SELECT ALL USER SECURABLESpermissã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
sysesquema.
- 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
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