Partilhar via


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

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

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

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

[ sys.]
O qualificador sys só é necessário quando você está 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 a entidade a partir da 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.

Cuidado

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 do sistema são visíveis na exibição de catálogo sys.system_objects . As permissões em objetos do sistema são visíveis na exibição de 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

Convenções da sintaxe 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)