Fonctions et vues de gestion dynamique (Transact-SQL)

Les fonctions et vues de gestion dynamique renvoient des informations sur l'état du serveur, qu'il est possible d'utiliser pour surveiller l'état d'une instance du serveur, diagnostiquer des problèmes et optimiser les performances.

Important

Les fonctions et vues de gestion dynamique renvoient des données d'état internes propres à l'implémentation. Leurs schémas et les données qu'elles renvoient sont susceptibles de changer dans les versions ultérieures de SQL Server. Les fonctions et vues de gestion dynamique des futures versions ne seront donc peut-être pas compatibles avec celles de SQL Server 2008.

Il existe deux types de fonctions et vues de gestion dynamique :

  • les fonctions et vues de gestion dynamique dont l'étendue est définie au niveau du serveur qui nécessitent l'autorisation VIEW SERVER STATE sur le serveur ;

  • Les fonctions et vues de gestion dynamique dont l'étendue est définie au niveau de la base de données qui nécessitent l'autorisation VIEW DATABASE STATE sur la base de données.

Interrogation des vues de gestion dynamique

Il est possible de référencer des vues de gestion dynamique dans des instructions Transact-SQL en utilisant des noms en deux, trois ou quatre parties. En revanche, il est possible de référencer les fonctions de gestion dynamique dans des instructions Transact-SQL en utilisant des noms en deux ou trois parties. Il n'est pas possible de référencer les fonctions et vues de gestion dynamique dans des instructions Transact-SQL en utilisant des noms en une seule partie.

Toutes les fonctions et vues de gestion dynamique existent dans le schéma sys et respectent la convention de noms dm_*. Lorsque vous utilisez une fonction ou une vue de gestion dynamique, vous devez faire précéder le nom de la vue ou de la fonction du schéma sys. Par exemple, pour effectuer une requête dans la vue de gestion dynamique dm_os_wait_stats, exécutez :

SELECT wait_type, wait_time_ms

FROM sys.dm_os_wait_stats;

GO

Autorisations requises

Une requête sur une fonction ou une vue de gestion dynamique nécessite l'autorisation SELECT sur un objet et l'autorisation VIEW SERVER STATE ou VIEW DATABASE STATE. Cela permet de limiter sélectivement l'accès d'un utilisateur ou d'une connexion aux fonctions et vues de gestion dynamique. Pour cela, créez d'abord l'utilisateur dans master, puis refusez à cet utilisateur l'autorisation SELECT sur les fonctions et vues de gestion dynamique auxquelles vous souhaitez interdire l'accès. Après cela, l'utilisateur ne peut pas sélectionner ces fonctions et vues de gestion dynamique, quel que soit le contexte de la base de données de l'utilisateur.

[!REMARQUE]

Du fait que DENY est prioritaire, si un utilisateur a les autorisations VIEW SERVER STATE mais n'a pas l'autorisation VIEW DATABASE STATE, il peut visualiser des informations au niveau serveur, mais pas au niveau base de données.

Dans cette section

Les fonctions et vues de gestion dynamique sont organisées selon les catégories suivantes.