Compartilhar via


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

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric

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

Syntax

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

Arguments

[ sys. ]

O sys qualificador é necessário somente quando você estiver se referindo a exibições de 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.

Remarks

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 de catálogo, exibições de compatibilidade, INFORMATION_SCHEMA exibições, exibições de gerenciamento dinâmico e tabelas do sistema instaladas pelo SQL Server. Cada um desses objetos do 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 sys esquema de cada 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 sys qualificador só é necessário quando você está especificando exibições de catálogo e exibições de gerenciamento dinâmico.

Caution

Negar permissões em objetos do sistema faz com que os aplicativos que dependem deles falhem. O SQL Server Management Studio usa exibições de catálogo e pode não funcionar conforme o esperado, se você alterar as permissões padrão nas exibições do catálogo.

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

As permissões em objetos do sistema são preservadas durante as 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 no master banco de dados.

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

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

Permissions

Requer a permissão CONTROL SERVER.

Examples

O exemplo a seguir nega EXECUTE permissão xp_cmdshell ao público.

DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO