DENY (Transact-SQL)
Nega uma permissão a uma entidade de segurança. Impede a entidade de segurança de herdar a permissão através das suas associações de grupo ou de função.
Convenções de sintaxe Transact-SQL
Sintaxe
Simplified syntax for DENY
DENY { ALL [ PRIVILEGES ] }
| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ CASCADE] [ AS principal ]
Argumentos
ALL
Esta opção não nega todas as permissões possíveis. Negar ALL é equivalente a negar as permissões a seguir.Se o protegível for um banco de dados, ALL será equivalente a BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE e CREATE VIEW.
Se o protegível for uma função escalar, ALL será equivalente a EXECUTE e REFERENCES.
Se o protegível for uma função com valor de tabela, ALL será equivalente a DELETE, INSERT, REFERENCES, SELECT e UPDATE.
Se o protegível for um procedimento armazenado, ALL será equivalente a EXECUTE.
Se o protegível for uma tabela, ALL será equivalente a DELETE, INSERT, REFERENCES, SELECT e UPDATE.
Se o protegível for uma exibição, ALL será equivalente a DELETE, INSERT, REFERENCES, SELECT e UPDATE.
Observação A sintaxe DENY ALL é preterida. Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Negue as permissões específicas em vez disso.
PRIVILEGES
Incluído para conformidade com ISO. Não altera o comportamento de ALL.permission
É o nome de uma permissão. Os mapeamentos válidos de permissões para protegíveis são descritos nos subtópicos listados a seguir.column
Especifica o nome de uma coluna em uma tabela na qual as permissões estão sendo negadas. Os parênteses () são necessários.class
Especifica a classe do protegível em que a permissão está sendo negada. O qualificador de escopo :: é necessário.securable
Especifica o protegível no qual a permissão está sendo negada.TO principal
É o nome de uma entidade. Os principais para os quais as permissões em um protegível podem ser negadas variam, dependendo do protegível. Consulte os tópicos específicos sobre protegíveis listados a seguir para obter as combinações válidas.CASCADE
Indica que a permissão está sendo negada para o principal especificado e todos os outros principais aos quais o principal concedeu a permissão. Necessário quando o principal tem a permissão com GRANT OPTION.AS principal
Especifica uma entidade de segurança da qual a entidade que executa esta instrução deriva seu direito de negar a permissão.
Comentários
A sintaxe completa da instrução DENY é complexa. O diagrama de sintaxe acima foi simplificado para chamar atenção para sua estrutura. A sintaxe completa para negar permissões em protegíveis específicos é descrita nos tópicos listados a seguir.
DENY falhará se CASCADE não for especificado ao negar uma permissão a uma entidade de segurança à qual ela foi concedida com GRANT OPTION especificado.
O procedimento armazenado do sistema sp_helprotect relata as permissões em um protegível no nível de banco de dados.
Cuidado |
---|
Um DENY em nível de tabela não tem precedência sobre um GRANT em nível de coluna. Essa inconsistência na hierarquia de permissões foi preservada para manter a compatibilidade com versões anteriores. Ela será removida em uma versão futura. |
Cuidado |
---|
Negar a permissão CONTROL em um banco de dados implicitamente nega a permissão CONNECT no banco de dados. Um principal ao qual é negada a permissão CONTROL em um banco de dados não poderá se conectar a esse banco de dados. |
Cuidado |
---|
Negar a permissão CONTROL SERVER implicitamente nega a permissão CONNECT SQL no servidor. Um principal ao qual é negada a permissão CONTROL SERVER em um servidor não poderá se conectar a esse servidor. |
Permissões
O chamador (ou o principal especificado com a opção AS) deve ter a permissão CONTROL no protegível ou uma permissão superior que indica a permissão CONTROL no protegível. Se usar a cláusula AS, o principal especificado deverá ser proprietário do protegível no qual uma permissão está sendo negada.
Os usuários autorizados da permissão CONTROL SERVER, como os membros da função de servidor fixa sysadmin, podem negar qualquer permissão em qualquer protegível do servidor. Os usuários autorizados da permissão CONTROL no banco de dados, como os membros da função de banco de dados fixa db_owner, podem negar qualquer permissão a qualquer protegível do banco de dados. Os usuários autorizados da permissão CONTROL em um esquema podem negar qualquer permissão no esquema. Se a cláusula AS for usada, o principal especificado deverá ser proprietário do protegível no qual as permissões estão sendo negadas.
Exemplos
A tabela a seguir lista os protegíveis e os tópicos que descrevem a sintaxe específica a protegíveis.
Função de aplicativo |
Permissões de principal do banco de dados DENY (Transact-SQL) |
Assembly |
|
Chave assimétrica |
|
Grupo de disponibilidade |
|
Certificado |
|
Contrato |
|
Banco de Dados |
|
Ponto de extremidade |
|
Catálogo de texto completo |
|
Lista de palavras irrelevantes de texto completo |
|
Função |
|
Logon |
|
Tipo de mensagem |
|
Objeto |
|
Fila |
|
Associação de serviço remoto |
|
Função |
Permissões de principal do banco de dados DENY (Transact-SQL) |
Rota |
|
Esquema |
|
Lista de propriedades de pesquisa |
Permissões de lista de propriedades de pesquisa DENY (Transact-SQL) |
Servidor |
|
Serviço |
|
Procedimento armazenado |
|
Chave simétrica |
|
Sinônimo |
|
Objetos do sistema |
|
Tabela |
|
Tipo |
|
Usuário |
Permissões de principal do banco de dados DENY (Transact-SQL) |
Exibição |
|
Coleção de esquema XML |