次の方法で共有


システム動的管理ビュー

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス

動的管理ビュー (DMV) と動的管理機能 (DMF) は、サーバー インスタンスの正常性の監視、問題の診断、パフォーマンスの調整に使用できるサーバー状態情報を返します。

重要

動的管理ビューと関数は、実装固有の内部状態データを返します。 スキーマと返されるデータは、SQL Server の今後のリリースで変更される可能性があります。 そのため、今後のリリースの動的管理ビューと関数は、このリリースの動的管理ビューと機能と互換性がない可能性があります。 たとえば、SQL Server の今後のリリースでは、列リストの末尾に列を追加することで、動的管理ビューの定義が拡張される可能性があります。 返される列の数が変わってアプリケーションが中断されるおそれがあるため、運用環境のコードで SELECT * FROM dynamic_management_view_name という構文を使うことはお勧めしません。

動的管理ビューと動的管理関数には 2 つの種類があります。

  • サーバー スコープの動的管理ビューと動的管理関数。 これらには、サーバーでの VIEW SERVER STATE 権限が必要です。 SQL Server 2022 以降では、VIEW SERVER のパフォーマンス状態が必要です。または、セキュリティに関連するいくつかの DMV には VIEW SERVER のセキュリティ状態が必要です。

  • データベース スコープの動的管理ビューと動的管理関数。 これらには、データベースに対する VIEW DATABASE STATE 権限が必要です。 SQL Server 2022 以降では、VIEW DATABASE のパフォーマンス状態が必要です。または、セキュリティ関連のいくつかの DMV には VIEW DATABASE SECURITY STATE が必要です。

クエリ動的管理ビュー

動的管理ビューは、2 部構成、3 部構成、または 4 部構成の名前を使用して Transact-SQL ステートメントで参照できます。 一方、動的管理関数は、2 部構成の名前または 3 部構成の名前を使用して、Transact-SQL ステートメントで参照できます。 動的管理ビューと動的関数は、1 部構成の名前を使用して Transact-SQL ステートメントで参照することはできません。

すべての動的管理ビューと動的管理関数は sys スキーマに含まれ、dm_* という名前付け規則に従います。 動的管理ビューまたは動的管理関数を使用するときには、sys スキーマを使用して、ビューまたは関数の名前にプレフィックスを付ける必要があります。 たとえば、動的管理ビュー dm_os_wait_stats をクエリするには、次のクエリを実行します。

SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats;

必要なアクセス許可

動的管理ビューまたは関数に対してクエリを実行するには、オブジェクトに対する SELECT 権限と VIEW SERVER STATE または VIEW DATABASE STATE 権限が必要です。 これらの権限を使用することにより、動的管理ビューと動的管理関数に対するユーザーまたはログインのアクセスを選択的に制限できます。 これを行うには、まず master でユーザーを作成し、アクセスさせたくない動的管理ビューまたは関数に対するユーザー SELECT アクセス許可を拒否します。 この後、ユーザーは、ユーザーのデータベース コンテキストに関係なく、これらの動的管理ビューまたは関数から選択することはできません。

Note

DENY が優先されるため、ユーザーに VIEW SERVER STATE 権限が付与されているが、VIEW DATABASE STATE 権限が拒否されている場合、ユーザーはサーバー レベルの情報を表示できますが、データベース レベルの情報は表示できません。

このセクションの内容

動的管理ビューと機能は、次のカテゴリに分類されています。