Partager via


REFUSER les autorisations d’objet système (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de données SQL dans Microsoft Fabric Preview

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

Syntax

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

Arguments

[ sys. ]

Le sys qualificateur n’est requis que lorsque vous faites référence aux vues de catalogue et aux 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.

Remarks

Cette instruction peut être utilisée pour refuser des autorisations sur certaines procédures stockées, procédures stockées étendues, fonctions table, fonctions scalaires, vues de catalogue, vues de compatibilité, vues de compatibilité, INFORMATION_SCHEMA vues de gestion dynamique et tables système installées par SQL Server. Chacun de ces objets système existe en tant qu’enregistrement unique dans la base de données de ressources (mssqlsystemresource). La base de données des ressources est en lecture seule. Un lien vers l’objet est exposé sous forme d’enregistrement dans le sys schéma 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 sys qualificateur n’est requis que lorsque vous spécifiez des vues de catalogue et des vues de gestion dynamique.

Caution

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

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

Les autorisations sur les objets système sont conservées pendant les mises à 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 visibles dans l’affichage catalogue sys.database_permissions dans la master base de données.

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

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

Nécessite l'autorisation CONTROL SERVER.

Examples

L’exemple suivant refuse EXECUTE l’autorisation à xp_cmdshellpublic.

DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO