DENY – refus d'autorisations d'objet système (Transact-SQL)

Permet de refuser des autorisations sur des objets système tels que des procédures stockées, des procédures stockées étendues, des fonctions et des vues.

Icône Lien de rubrique Conventions de la syntaxe de Transact-SQL

Syntaxe

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

Arguments

  • [ sys.]
    Le qualificateur sys est requis uniquement lorsque vous faites référence à des affichages catalogue ou à des vues de gestion dynamique.

  • system_object
    Spécifie l'objet sur lequel l'autorisation doit être refusée.

  • principal
    Spécifie le principal pour lequel l'autorisation doit être révoquée.

Notes

Cette instruction permet de refuser des autorisations sur des procédures stockées, procédures stockées étendues, fonctions table, fonctions scalaires, vues, affichages catalogue, vues de compatibilité, vues INFORMATION_SCHEMA, vues de gestion dynamique et tables système installées par SQL Server. Chacun de ces objets système existe sous la forme d'un enregistrement unique dans la base de données des ressources (mssqlsystemresource). La base de données des ressources est en lecture seule. Un lien à l'objet est exposé comme un enregistrement dans le schéma sys de chaque base de données.

La résolution de noms par défaut permet de résoudre les noms de procédure non qualifiés dans la base de données des ressources. Par conséquent, le qualificateur sys est requis uniquement lorsque vous spécifiez des affichages catalogue et des vues de gestion dynamique.

AttentionAttention

Le refus d'autorisations sur des objets système entraîne l'échec des applications qui en dépendent. SQL Server Management Studio utilise les affichages catalogue et peut ne pas fonctionner comme prévu si vous modifiez les autorisations par défaut sur les affichages catalogue.

Le refus d'autorisations sur des déclencheurs et sur des colonnes d'objets système n'est pas pris en charge.

Les autorisations sur les objets système sont conservées lors d'une mise à niveau de SQL Server.

Les objets système sont consultables dans l'affichage catalogue sys.system_objects. Les autorisations sur les objets système sont consultables dans l'affichage catalogue sys.database_permissions, dans la base de données master.

La requête ci-dessous retourne des informations sur les autorisations des objets système :

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

Autorisations

Requiert l'autorisation CONTROL SERVER.

Exemples

Dans l'exemple ci-dessous, l'autorisation EXECUTE sur xp_cmdshell est refusée à public.

DENY EXECUTE ON sys.xp_cmdshell TO public;
GO

Voir aussi

Référence

Conventions de la syntaxe Transact-SQL (Transact-SQL)

sys.database_permissions (Transact-SQL)

GRANT – octroi d'autorisations d'objet système (Transact-SQL)

REVOKE – révocation d'autorisations d'objet système (Transact-SQL)