Share via


Permissões de objeto do sistema DENY (Transact-SQL)

Nega permissões em objetos do sistema, como procedimentos armazenados, procedimentos armazenados estendidos, funções e exibições.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

DENY { SELECT | EXECUTE } ON [ sys.]system_object TO principal 

Argumentos

  • [ sys.]
    O qualificador sys só é necessário quando você estiver referenciando exibições do catálogo e exibições de gerenciamento dinâmico.

  • system_object
    Especifica o objeto no qual a permissão está sendo negada.

  • principal
    Especifica o principal a partir do qual a permissão está sendo revogada.

Comentários

Essa instrução pode ser usada para negar permissões em determinados procedimentos armazenados, procedimentos armazenados estendidos, funções com valor de tabela, funções escalares, exibições, exibições do catálogo, exibições de compatibilidade, exibições INFORMATION_SCHEMA, exibições de gerenciamento dinâmico e tabelas do sistema instaladas pelo SQL Server. Para cada um desses objetos de sistema existe como um registro exclusivo no banco de dados de recursos (mssqlsystemresource). O banco de dados de recursos é somente leitura. Um link para o objeto é exposto como um registro no esquema sys de todo banco de dados.

A resolução de nome padrão resolve nomes de procedimento não qualificados para o banco de dados de recursos. Portanto, o qualificador sys é necessário somente ao especificar exibições do catálogo e exibições de gerenciamento dinâmico.

Observação sobre cuidadosCuidado

A negação de permissões em objetos do sistema provocará falha nos aplicativos que dependem deles. O SQL Server Management Studio usa exibições do catálogo e pode não funcionar como o esperado se você alterar as permissões padrão em exibições do catálogo.

Não há suporte para a negação de permissões em gatilhos e colunas de objetos do sistema.

As permissões em objetos do sistema serão preservadas nas atualizações do SQL Server.

Os objetos de sistema são visíveis na exibição do catálogo sys.system_objects. As permissões em objetos do sistema são visíveis na exibição do catálogo sys.database_permissions do banco de dados mestre.

A consulta a seguir retorna informações sobre permissões de objetos do sistema:

SELECT * FROM master.sys.database_permissions AS dp 
    JOIN sys.system_objects AS so
    ON dp.major_id = so.object_id
    WHERE dp.class = 1 AND so.parent_object_id = 0 ;
GO

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

O exemplo a seguir nega a permissão EXECUTE em xp_cmdshell a public.

DENY EXECUTE ON sys.xp_cmdshell TO public;
GO

Consulte também

Referência

convenções de sintaxe Transact-SQL (Transact-SQL)

sys.database_permissions (Transact-SQL)

Permissões de objeto do sistema GRANT (Transact-SQL)

Permissões de objeto do sistema REVOKE (Transact-SQL)