DENY (Transact-SQL)
Nega uma permissão a um principal. Impede o principal de herdar a permissão através das suas associações de grupo ou de função.
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 na qual 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 um principal do qual o principal 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 anterior foi simplificado para chamar a 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 um principal ao 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 em qualquer protegível no 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 |
|
Certificate |
|
Contrato |
|
Banco de dados |
|
Endpoint |
|
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 |
|
Schema |
|
Servidor |
|
Serviço |
|
Procedimento armazenado |
|
Chave simétrica |
|
Sinônimo |
|
Objetos do sistema |
|
Tabela |
|
Tipo |
|
User |
Permissões de principal do banco de dados DENY (Transact-SQL) |
Exibir |
|
Coleção de esquema XML |