データ ウェアハウスをセキュリティで保護して監視する

完了

セキュリティと監視は、データ ウェアハウスを管理するうえで重要な側面です。

セキュリティ

データ ウェアハウスのセキュリティは、未承認のアクセスからデータを保護するために重要です。 Fabric には、データ ウェアハウスのセキュリティ保護に役立つさまざまなセキュリティ機能が用意されています。 これには以下が含まれます。

  • ウェアハウスとそのデータへのアクセスを制御するロールベースのアクセス制御 (RBAC)。
  • ウェアハウスとクライアント アプリケーション間の通信をセキュリティで保護するための SSL 暗号化。
  • 転送中および保存中のデータを保護するための Azure Storage Service Encryption。
  • ウェアハウス アクティビティを監視し、データへのアクセスを監査する Azure Monitor と Azure Log Analytics。
  • ユーザー アカウントにセキュリティ レイヤーをさらに追加する多要素認証 (MFA)。
  • ユーザー ID とウェアハウスへのアクセスを管理するための Microsoft Entra ID の統合。

ワークスペースのアクセス許可

Fabric のデータは、アクセスを制御し、データとサービスのライフサイクルを管理するために使用されるワークスペースに編成されます。 適切なワークスペース ロールは、データ ウェアハウスをセキュリティで保護するための防御の最前線です。

ワークスペース ロールに加えて、SQL を使用して "アイテムのアクセス許可" とアクセス権を付与できます。

ヒント

ワークスペース ロールの詳細については、「Power BI でのワークスペース」を参照してください。

アイテムのアクセス許可

ワークスペース内のすべてのアイテムに適用されるワークスペース ロールとは対照的に、"アイテムのアクセス許可" を使用して個々のウェアハウスへのアクセスを許可できます。 これにより、ダウンストリームで使用するために 1 つのデータ ウェアハウスを共有できます。

T-SQL または Fabric ポータルを使用して、ユーザーにアクセス許可を付与できます。 データ ウェアハウスにアクセスする必要があるユーザーに、次のアクセス許可を付与してください。

  • Read: ユーザーが SQL 接続文字列を使用して接続できるようにします。
  • ReadData: ユーザーがウェアハウス内の任意のテーブルまたはビューからデータを読み取ることができるようにします。
  • ReadAll: ユーザーが、Spark で使用できる OneLake 内の生の Parquet ファイルを読み取ることができるようにします。

SQL 分析エンドポイントへのユーザー接続は、少なくとも Read アクセス許可がないと失敗します。

監視

データ ウェアハウスでのアクティビティの監視は、最適なパフォーマンス、効率的なリソース使用率、セキュリティを確保するために重要です。 これは、問題を特定し、異常を検出し、データ ウェアハウスをスムーズかつ安全に実行し続けるためにアクションを実行するのに役立ちます。

"動的管理ビュー" (DMV) を使用して、接続、セッション、要求の状態を監視して、ライブ SQL クエリ ライフサイクルの分析情報を表示できます。 DMV を使用すると、アクティブなクエリの数などの詳細を取得し、長期間実行されていて、終了する必要があるクエリを特定できます。

現在、Fabric で使用できる DMV は 3 つあります。

  • sys.dm_exec_connections: ウェアハウスとエンジンの間に確立された各接続に関する情報が返されます。
  • sys.dm_exec_sessions: 項目とエンジンの間で認証された各セッションに関する情報が返されます。
  • sys.dm_exec_requests: セッション内のアクティブな各要求に関する情報が返されます。

クエリの監視

"sys.dm_exec_requests" を使用して、データベースの全体的なパフォーマンスに影響を与えるおそれがある実行時間の長いクエリを特定し、それらのクエリを最適化または終了するための適切なアクションを実行します。

まず、長時間実行されているクエリを特定してください。 次のクエリを使用して、最も長く実行されているクエリを降順で特定してください。

    SELECT request_id, session_id, start_time, total_elapsed_time
    FROM sys.dm_exec_requests
    WHERE status = 'running'
    ORDER BY total_elapsed_time DESC;

次を実行すると、調査を続けて、実行時間の長いクエリでセッションを実行したユーザーを把握できます。

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';

最後に、KILL コマンドを使用して、実行時間の長いクエリでセッションを終了できます。

    KILL 'SESSION_ID WITH LONG-RUNNING QUERY';

重要

KILL コマンドを実行するには、ワークスペース管理者である必要があります。 ワークスペース管理者は、3 つの DMV のすべてを実行できます。 メンバー、共同作成者、ビューアーの各ロールは、ウェアハウス内で自分の結果を表示できますが、他のユーザーの結果は表示できません。