Permissões de banco de dados DENY (Transact-SQL)
Nega permissões em um banco de dados no SQL Server.
Aplica-se a: SQL Server (do SQL Server 2008 à versão atual), Banco de dados SQL do Windows Azure (da versão inicial até a versão atual). |
Convenções da sintaxe Transact-SQL
Sintaxe
DENY <permission> [ ,...n ]
TO <database_principal> [ ,...n ] [ CASCADE ]
[ AS <database_principal> ]
<permission> ::=
permission | ALL [ PRIVILEGES ]
<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 em um banco de dados. Para obter uma lista de permissões, consulte a seção Comentários mais adiante neste tópico.ALL
Esta opção não nega todas as permissões possíveis. Negar ALL é equivalente a negar as seguintes permissões: BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE e CREATE VIEW.PRIVILEGES
Incluído para conformidade com ISO. Não altera o comportamento de ALL.CASCADE
Indica que a permissão também será negada às entidades às quais a entidade especificada a concedeu.AS <database_principal>
Especifica uma entidade de segurança da qual a entidade de segurança que executa essa consulta deriva seu direito de negar 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
Aplica-se a: do SQL Server 2008 ao SQL Server 2014.
Especifica uma função de aplicativo.
Database_user_mapped_to_Windows_User
Aplica-se a: do SQL Server 2008 ao SQL Server 2014.
Especifica um usuário do banco de dados mapeado para um usuário do Windows.
Database_user_mapped_to_Windows_Group
Aplica-se a: do SQL Server 2008 ao SQL Server 2014.
Especifica um usuário do banco de dados mapeado para um grupo do Windows.
Database_user_mapped_to_certificate
Aplica-se a: do SQL Server 2008 ao SQL Server 2014.
Especifica um usuário do banco de dados mapeado para um certificado.
Database_user_mapped_to_asymmetric_key
Aplica-se a: do SQL Server 2008 ao SQL Server 2014.
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 nenhuma entidade de segurança correspondente no nível de servidor.
Comentários
Um banco de dados é um protegível contido no servidor pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em um banco de dados são listadas na tabela a seguir, junto com as permissões mais gerais que as incluem implicitamente.
Permissão de banco de dados |
Implícita na permissão de banco de dados |
Implícita na permissão de servidor |
|
---|---|---|---|
ALTER |
CONTROL |
ALTER ANY DATABASE |
|
ALTER ANY APPLICATION ROLE |
ALTER |
CONTROL SERVER |
|
ALTER ANY ASSEMBLY |
ALTER |
CONTROL SERVER |
|
ALTER ANY ASYMMETRIC KEY |
ALTER |
CONTROL SERVER |
|
ALTER ANY CERTIFICATE |
ALTER |
CONTROL SERVER |
|
ALTER ANY CONTRACT |
ALTER |
CONTROL SERVER |
|
ALTER ANY DATABASE AUDIT |
ALTER |
ALTER ANY SERVER AUDIT |
|
ALTER ANY DATABASE DDL TRIGGER |
ALTER |
CONTROL SERVER |
|
ALTER ANY DATABASE EVENT NOTIFICATION |
ALTER |
ALTER ANY EVENT NOTIFICATION |
|
ALTER ANY DATABASE EVENT SESSION Aplica-se a: Banco de dados SQL do Windows Azure. |
ALTER |
ALTER ANY EVENT SESSION |
|
ALTER ANY DATASPACE |
ALTER |
CONTROL SERVER |
|
ALTER ANY FULLTEXT CATALOG |
ALTER |
CONTROL SERVER |
|
ALTER ANY MESSAGE TYPE |
ALTER |
CONTROL SERVER |
|
ALTER ANY REMOTE SERVICE BINDING |
ALTER |
CONTROL SERVER |
|
ALTER ANY ROLE |
ALTER |
CONTROL SERVER |
|
ALTER ANY ROUTE |
ALTER |
CONTROL SERVER |
|
ALTER ANY SCHEMA |
ALTER |
CONTROL SERVER |
|
ALTER ANY SERVICE |
ALTER |
CONTROL SERVER |
|
ALTER ANY SYMMETRIC KEY |
ALTER |
CONTROL SERVER |
|
ALTER ANY USER |
ALTER |
CONTROL SERVER |
|
AUTHENTICATE |
CONTROL |
AUTHENTICATE SERVER |
|
BACKUP DATABASE |
CONTROL |
CONTROL SERVER |
|
BACKUP LOG |
CONTROL |
CONTROL SERVER |
|
CHECKPOINT |
CONTROL |
CONTROL SERVER |
|
CONNECT |
CONNECT REPLICATION |
CONTROL SERVER |
|
CONNECT REPLICATION |
CONTROL |
CONTROL SERVER |
|
CONTROL |
CONTROL |
CONTROL SERVER |
|
CREATE AGGREGATE |
ALTER |
CONTROL SERVER |
|
CREATE ASSEMBLY |
ALTER ANY ASSEMBLY |
CONTROL SERVER |
|
CREATE ASYMMETRIC KEY |
ALTER ANY ASYMMETRIC KEY |
CONTROL SERVER |
|
CREATE CERTIFICATE |
ALTER ANY CERTIFICATE |
CONTROL SERVER |
|
CREATE CONTRACT |
ALTER ANY CONTRACT |
CONTROL SERVER |
|
CREATE DATABASE |
CONTROL |
CREATE ANY DATABASE |
|
CREATE DATABASE DDL EVENT NOTIFICATION |
ALTER ANY DATABASE EVENT NOTIFICATION |
CREATE DDL EVENT NOTIFICATION |
|
CREATE DEFAULT |
ALTER |
CONTROL SERVER |
|
CREATE FULLTEXT CATALOG |
ALTER ANY FULLTEXT CATALOG |
CONTROL SERVER |
|
CREATE FUNCTION |
ALTER |
CONTROL SERVER |
|
CREATE MESSAGE TYPE |
ALTER ANY MESSAGE TYPE |
CONTROL SERVER |
|
CREATE PROCEDURE |
ALTER |
CONTROL SERVER |
|
CREATE QUEUE |
ALTER |
CONTROL SERVER |
|
CREATE REMOTE SERVICE BINDING |
ALTER ANY REMOTE SERVICE BINDING |
CONTROL SERVER |
|
CREATE ROLE |
ALTER ANY ROLE |
CONTROL SERVER |
|
CREATE ROUTE |
ALTER ANY ROUTE |
CONTROL SERVER |
|
CREATE RULE |
ALTER |
CONTROL SERVER |
|
CREATE SCHEMA |
ALTER ANY SCHEMA |
CONTROL SERVER |
|
CREATE SERVICE |
ALTER ANY SERVICE |
CONTROL SERVER |
|
CREATE SYMMETRIC KEY |
ALTER ANY SYMMETRIC KEY |
CONTROL SERVER |
|
CREATE SYNONYM |
ALTER |
CONTROL SERVER |
|
CREATE TABLE |
ALTER |
CONTROL SERVER |
|
CREATE TYPE |
ALTER |
CONTROL SERVER |
|
CREATE VIEW |
ALTER |
CONTROL SERVER |
|
CREATE XML SCHEMA COLLECTION |
ALTER |
CONTROL SERVER |
|
DELETE |
CONTROL |
CONTROL SERVER |
|
EXECUTE |
CONTROL |
CONTROL SERVER |
|
INSERT |
CONTROL |
CONTROL SERVER |
|
KILL DATABASE CONNECTION
|
CONTROL |
ALTER ANY CONNECTION |
|
REFERENCES |
CONTROL |
CONTROL SERVER |
|
SELECT |
CONTROL |
CONTROL SERVER |
|
SHOWPLAN |
CONTROL |
ALTER TRACE |
|
SUBSCRIBE QUERY NOTIFICATIONS |
CONTROL |
CONTROL SERVER |
|
TAKE OWNERSHIP |
CONTROL |
CONTROL SERVER |
|
UPDATE |
CONTROL |
CONTROL SERVER |
|
VIEW DATABASE STATE |
CONTROL |
VIEW SERVER STATE |
|
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
Permissões
A entidade que executa esta instrução (ou a entidade especificada com a opção AS) deve ter a permissão CONTROL no banco de dados ou uma permissão acima que inclua a permissão CONTROL no banco de dados.
Se você estiver usando a opção AS, a entidade especificada deverá ser proprietária do banco de dados.
Exemplos
A.Negando a permissão para criar certificados
O exemplo a seguir nega a permissão CREATE CERTIFICATE no banco de dados AdventureWorks2012 ao usuário MelanieK.
Aplica-se a: do SQL Server 2008 ao SQL Server 2014. |
USE AdventureWorks2012;
DENY CREATE CERTIFICATE TO MelanieK;
GO
B.Negando a permissão REFERENCES a uma função de aplicativo
O exemplo a seguir nega a permissão REFERENCES no banco de dados AdventureWorks2012 à função de aplicativo AuditMonitor.
Aplica-se a: do SQL Server 2008 ao SQL Server 2014. |
USE AdventureWorks2012;
DENY REFERENCES TO AuditMonitor;
GO
C.Negando VIEW DEFINITION com CASCADE
O exemplo a seguir nega a permissão VIEW DEFINITION no banco de dados AdventureWorks2012 ao usuário CarmineEs e a todas as entidades às quais CarmineEs concedeu a permissão VIEW DEFINITION.
USE AdventureWorks2012;
DENY VIEW DEFINITION TO CarmineEs CASCADE;
GO
Consulte também
Referência
sys.database_permissions (Transact-SQL)
sys.database_principals (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL)