DENY – refus d'autorisations d'objet système (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
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.
Conventions de la syntaxe Transact-SQL
Syntaxe
DENY { SELECT | EXECUTE } ON [ sys.]system_object TO principal
Arguments
[ sys.]
Le qualificateur sys est obligatoire uniquement quand vous faites référence à des vues de 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 est révoquée.
Remarques
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é sous la forme d’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édures non qualifiés dans la base de données des ressources. Par conséquent, le qualificateur sys est obligatoire uniquement quand vous spécifiez des vues de catalogue et des vues de gestion dynamique.
Attention
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
Conventions de la syntaxe 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)