Permissões de principal do banco de dados DENY (Transact-SQL)
Nega permissões concedidas em um usuário de banco de dados, função de banco de dados ou função de aplicativo.
Convenções da sintaxe Transact-SQL
Sintaxe
DENY permission [ ,...n ]
ON
{ [ USER :: database_user ]
| [ ROLE :: database_role ]
| [ APPLICATION ROLE :: application_role ]
}
TO <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Argumentos
permission
Especifica uma permissão que pode ser negada no principal de banco de dados. Para obter uma lista de permissões, consulte a seção Comentários mais adiante neste tópico.USER ::database_user
Especifica a classe e o nome do usuário no qual a permissão está sendo negada. O qualificador de escopo (::) é obrigatório.ROLE ::database_role
Especifica a classe e o nome da função na qual a permissão está sendo negada. O qualificador de escopo (::) é obrigatório.APPLICATION ROLE ::application_role
Especifica a classe e o nome da função de aplicativo na qual a permissão está sendo negada. O qualificador de escopo (::) é obrigatório.CASCADE
Indica que a permissão que está sendo negada também é negada a outros principais aos quais ela foi concedida por esse principal.AS <database_principal>
Especifica um principal do qual o principal que executa esta consulta deriva seu direito de revogar a permissão.Database_user
Especifica um usuário do banco de dados.Database_role
Especifica uma função de banco de dados.Application_role
Especifica uma função de aplicativo.Database_user_mapped_to_Windows_User
Especifica um usuário do banco de dados mapeado para um usuário do Windows.Database_user_mapped_to_Windows_Group
Especifica um usuário do banco de dados mapeado para um grupo do Windows.Database_user_mapped_to_certificate
Especifica um usuário do banco de dados mapeado para um certificado.Database_user_mapped_to_asymmetric_key
Especifica um usuário do banco de dados mapeado para uma chave assimétrica.Database_user_with_no_login
Especifica um usuário do banco de dados sem nenhum principal correspondente no nível de servidor.
Comentários
Permissões do usuário do banco de dados
Um usuário do banco de dados é um item protegível do nível do banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em um usuário do banco de dados são listadas na tabela a seguir, junto com as permissões mais gerais que as incluem implicitamente.
Permissão do usuário do banco de dados |
Indicado pela permissão do usuário do banco de dados |
Implícito na permissão de banco de dados |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
IMPERSONATE |
CONTROL |
CONTROL |
ALTER |
CONTROL |
ALTER ANY USER |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Permissões da função de banco de dados
Uma função de banco de dados é um item protegível do nível do banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em uma função de banco de dados são listadas na tabela a seguir, junto com as permissões mais gerais que as incluem implicitamente.
Permissão da função de banco de dados |
Indicado pela permissão da função de banco de dados |
Implícito na permissão de banco de dados |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
ALTER |
CONTROL |
ALTER ANY ROLE |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Permissões de função de aplicativo
Uma função de aplicativo é um item protegível do nível do banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em uma função de aplicativo são listadas na tabela a seguir, junto com as permissões mais gerais que as incluem implicitamente.
Permissão de função de aplicativo |
Indicado pela permissão de função de aplicativo |
Implícito na permissão de banco de dados |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
ALTER |
CONTROL |
ALTER ANY APPLICATION ROLE |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Permissões
Requer a permissão CONTROL no principal especificado ou uma permissão mais alta que implica a permissão CONTROL.
Os usuários autorizados da permissão CONTROL em um 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.
Exemplos
A.Negando a permissão CONTROL em um usuário para outro usuário
O exemplo a seguir nega a permissão CONTROL no usuário AdventureWorks2012 Wanida para o usuário RolandX.
USE AdventureWorks2012;
DENY CONTROL ON USER::Wanida TO RolandX;
GO
B.Negando a permissão VIEW DEFINITION em uma função para um usuário para o qual foi concedida a permissão GRANT OPTION
O exemplo a seguir nega a permissão VIEW DEFINITION na função AdventureWorks2012 SammamishParking para o usuário de banco de dados JinghaoLiu. A opção CASCADE é especificada porque ao usuário JinghaoLiu foi concedida a permissão VIEW DEFINITION WITH GRANT OPTION.
USE AdventureWorks2012;
DENY VIEW DEFINITION ON ROLE::SammamishParking
TO JinghaoLiu CASCADE;
GO
C.Negando a permissão IMPERSONATE em um usuário para uma função de aplicativo
O exemplo a seguir nega a permissão IMPERSONATE no usuário HamithaL para a função de aplicativo AdventureWorks2012 AccountsPayable17.
USE AdventureWorks2012;
DENY IMPERSONATE ON USER::HamithaL TO AccountsPayable17;
GO
Consulte também
Referência
Permissões de principal do banco de dados GRANT (Transact-SQL)
Permissões de principal do banco de dados REVOKE (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)