Partilhar via


Permissões de objeto DENY (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Nega permissões em um membro da classe OBJECT de protegíveis. Estes são os membros da classe OBJECT: tabelas, exibições, funções com valor de tabela, procedimentos armazenados, procedimentos armazenados estendidos, funções escalares, funções agregadas, filas de serviço e sinônimos.

Transact-SQL convenções de sintaxe

Syntax

DENY <permission> [ ,...n ] ON   
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]  
        TO <database_principal> [ ,...n ]   
    [ CASCADE ]  
        [ AS <database_principal> ]  
  
<permission> ::=  
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]  
  
<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  

Arguments

permission
Especifica uma permissão que pode ser negada em um objeto contido no esquema. Para obter uma lista das permissões, consulte a seção Comentários mais adiante neste tópico.

ALL
Negar TUDO não nega todas as permissões possíveis. Negar ALL é equivalente a negar todas as permissões ANSI-92 aplicáveis ao objeto especificado. O significado de ALL varia da seguinte forma:

  • Permissões de função escalar: EXECUTE, REFERENCES.
  • Permissões de função com valor de tabela: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Permissões de procedimento armazenado: EXECUTE.
  • Permissões da tabela: EXCLUIR, INSERIR, REFERÊNCIAS, SELECIONAR, ATUALIZAR.
  • Ver permissões: EXCLUIR, INSERIR, REFERÊNCIAS, SELECIONAR, ATUALIZAR.

PRIVILEGES
Incluído para conformidade com ANSI-92. Não altera o comportamento da ALL.

column
Especifica o nome de uma coluna em uma tabela, modo de exibição ou função com valor de tabela na qual a permissão está sendo negada. Os parênteses ( ) são obrigatórios. Somente as permissões SELECT, REFERENCES e UPDATE podem ser negadas em uma coluna. pode ser especificada na cláusula permissions ou após o nome protegível.

Caution

Um DENY de nível de tabela não tem precedência sobre um GRANT de nível de coluna. Essa inconsistência na hierarquia de permissões foi preservada para compatibilidade com versões anteriores. No SQL Server, esse comportamento será diferente se o servidor estiver configurado para ser executado com a configuração de servidor habilitada para conformidade de critérios comuns. No entanto, em geral, esta deve ser utilizada apenas com precaução e não como prática geral.

EM [ OBJETO :: ] [ schema_name ] .object_name
Especifica o objeto no qual a permissão está sendo negada. A frase OBJECT é opcional se schema_name for especificado. Se a frase OBJECT for usada, o qualificador de escopo (::) será necessário. Se schema_name não for especificado, o esquema padrão será usado. Se schema_name for especificado, o qualificador de escopo do esquema (.) será necessário.

PARA database_principal <>
Especifica a entidade para a qual a permissão está sendo negada.

CASCADE
Indica que a permissão que está sendo negada também é negada a outras entidades às quais foi concedida por essa entidade de segurança.

COMO database_principal <>
Especifica uma entidade da qual a entidade que executa esta consulta deriva seu direito de negar a permissão.

Database_user
Especifica um usuário de 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 de banco de dados mapeado para um usuário do Windows.

Database_user_mapped_to_Windows_Group
Especifica um usuário de banco de dados mapeado para um grupo do Windows.

Database_user_mapped_to_certificate
Especifica um usuário de banco de dados mapeado para um certificado.

Database_user_mapped_to_asymmetric_key
Especifica um usuário de banco de dados mapeado para uma chave assimétrica.

Database_user_with_no_login
Especifica um usuário de banco de dados sem entidade de segurança correspondente no nível do servidor.

Remarks

As informações sobre objetos são visíveis em várias exibições de catálogo. Para obter mais informações, consulte Exibições do catálogo de objetos (Transact-SQL).

Um objeto é um protegível de nível de esquema contido pelo esquema que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser negadas em um objeto estão listadas na tabela a seguir, juntamente com as permissões mais gerais que as incluem por implicação.

Permissão de objeto Implícito pela permissão de objeto Implícito pela permissão de esquema
ALTER CONTROL ALTER
CONTROL CONTROL CONTROL
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
RECEIVE CONTROL CONTROL
REFERENCES CONTROL REFERENCES
SELECT RECEIVE SELECT
ASSUMIR A RESPONSABILIDADE CONTROL CONTROL
UPDATE CONTROL UPDATE
VER CONTROLO DE ALTERAÇÕES CONTROL VER CONTROLO DE ALTERAÇÕES
VER DEFINIÇÃO CONTROL VER DEFINIÇÃO

Permissions

Requer permissão CONTROL no objeto.

Se você usar a cláusula AS, a entidade de segurança especificada deverá ser proprietária do objeto no qual as permissões estão sendo negadas.

Examples

Os exemplos a seguir usam o banco de dados AdventureWorks.

A. Negando a permissão SELECT em uma tabela

O exemplo a seguir nega SELECT permissão ao usuário RosaQdM na tabela Person.Address.

DENY SELECT ON OBJECT::Person.Address TO RosaQdM;  
GO  

B. Negando permissão EXECUTE em um procedimento armazenado

O exemplo a seguir nega EXECUTE permissão no procedimento HumanResources.uspUpdateEmployeeHireInfo armazenado para uma função de aplicativo chamada Recruiting11.

DENY EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    TO Recruiting11;  
GO   

C. Negar permissão de REFERÊNCIAS em uma exibição com CASCADE

O exemplo a seguir nega REFERENCES permissão na coluna BusinessEntityID no modo de exibição HumanResources.vEmployee para o usuário Wanida com CASCADE.

DENY REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee   
    TO Wanida CASCADE;  
GO  

Ver também

Permissões de objeto GRANT (Transact-SQL)
Permissões de objeto REVOKE (Transact-SQL)
Exibições do catálogo de objetos (Transact-SQL)
Permissões (Motor de Base de Dados)
Principais (Motor de Base de Dados)
Securables
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)