Vues de gestion dynamique système

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Les vues de gestion dynamique (DMV) et les fonctions de gestion dynamique (DMV) retournent les informations d’état du serveur qui peuvent être utilisées pour surveiller l’intégrité d’une instance de serveur, diagnostiquer les problèmes et régler 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’ils retournent peuvent changer dans les futures versions de SQL Server. Les fonctions et vues de gestion dynamique des futures versions ne seront donc peut-être pas compatibles avec celles de cette version. Par exemple, dans les futures versions de SQL Server, Microsoft peut augmenter la définition de n’importe quelle vue de gestion dynamique en ajoutant des colonnes à la fin de la liste des colonnes. Nous déconseillons l'utilisation de la syntaxe SELECT * FROM dynamic_management_view_name dans le code de production car le nombre de colonnes retourné peut changer et altérer votre application.

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 ; Pour SQL Server 2022 et versions ultérieures, VIEW SERVER PERFORMANCE STATE est requis, ou VIEW SERVER SECURITY STATE est requis pour quelques DMV liées à la sécurité.

  • 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. Pour SQL Server 2022 et versions ultérieures, VIEW DATABASE PERFORMANCE STATE est requis, ou VIEW DATABASE SECURITY STATE est requis pour quelques DMV liées à la sécurité.

Interroger les vues de gestion dynamique

Les vues de gestion dynamique peuvent être référencées dans des instructions Transact-SQL à l’aide de noms en deux parties, en trois parties ou en quatre parties. En revanche, les fonctions de gestion dynamique peuvent être référencées dans les instructions Transact-SQL à l’aide de noms en deux parties ou en trois parties. Les vues et fonctions de gestion dynamique ne peuvent pas être référencées dans les instructions Transact-SQL à l’aide de noms en un seul composant.

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;

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 ce faire, commencez par créer l’utilisateur, master puis refusez l’autorisation SELECT utilisateur sur les vues ou fonctions de gestion dynamique auxquelles vous ne souhaitez pas accéder. Après cela, l’utilisateur ne peut pas sélectionner ces vues ou fonctions de gestion dynamique, quel que soit le contexte de 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.

Contenu de cette section

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