適用対象:✅ Warehouse in Microsoft Fabric
Fabric Data Warehouse での監査では、データベース イベントを追跡して記録することで、セキュリティとコンプライアンスの強化機能が提供されます。
SQL 監査ログは、Fabric ポータルの Fabric Data Warehouse または REST API を使用して構成できます。
前提条件
Fabric Data WarehouseのSQL監査ログを設定するには、以下の項目が必要です:
- アクティブな容量または試用版の容量を持つ Fabric ワークスペース。
- ワークスペース内の倉庫アイテムへのアクセス。
- 監査ログの設定およびクエリ権限。 詳細については、「アクセス許可」を参照してください。
SQL監査ログはFabricポータルやREST APIを使って設定できます。
Fabric ワークスペースで、ウェアハウスアイテムの 設定 を選択します。
[SQL 監査ログ] ページを選択します。
[イベントを SQL 監査ログに保存する] 設定を有効にします。
既定では、すべてのアクションが有効になり、9 年間保持されます。
記録するイベントの中から、SQL監査ログが記録するイベントを選択します。 収集したいイベントカテゴリや個別の監査アクショングループを選択してください。 ストレージと関連性を最適化するために組織が必要とするイベントのみを選択します。
オプションとして、既知のサービスプリンシパルや自動化識別子からアクティビティを除外するなどのイベントをフィルタリングするために述 語式 を入力します。
述語表現構文で説明されている構文を用いてください。
Von Bedeutung
述語フィルタリングは、 記録するイベントで既に選択されているイベントにのみ適用されます。 例えば、 SELECT 文をフィルタリングするには「 バッチ完了」を有効にする必要があります。
[年]、[月]、[日] で目的のログ保持期間を指定します。
[ 保存] を 選択して設定を適用します。
倉庫は選ばれた監査イベントを記録し、そのログをOneLakeに安全に保存します。
Visual Studio Codeをダウンロードしてインストールします。
Visual Studio Marketplace から REST クライアント拡張機能をインストールします。
以下の手順に従ってベアラートークンを取得してください。 Power BIベアラートークンは、ブラウザの開発者ツールやPowerShellで見つけることができます。
Edge 開発者ツールを使用して、Power BIベアラー トークンを検索するには:
- ブラウザー (Microsoft Edge) でMicrosoft Fabric ワークスペースを開きます。
-
F12 キーを押して開発者ツールを開きます。
-
[コンソール] タブを選択します。必要に応じて、[簡易ビューの展開] を選択して、コンソール プロンプト
> を表示します。
- コマンド
powerBIAccessToken を入力して、Enter キーを押します。 コンソールで返された大きな一意の文字列を右クリックし、[ 文字列の内容をコピー] を選択します。
- 次のスクリプトの
<bearer token> の位置に貼り付けます。
PowerShell を使用してPower BIベアラー トークンを検索するには:
Microsoft Power BI コマンドレットの MicrosoftPowerBIMgmt モジュールを、Windows PowerShell と PowerShell Core にインストールします。
Install-Module -Name MicrosoftPowerBIMgmt
Connect-PowerBIServiceAccount を使用してPower BI PowerShell に接続し、ベアラー トークンを取得します。
Connect-PowerBIServiceAccount
$token = (Get-PowerBIAccessToken).Authorization
Write-Output "Bearer $token"
Power BIベアラートークンを取得したら、REST Client拡張を使ってPATCHリクエストを送信します。 VS Codeで .http 拡張子の新しいテキストファイルを作成します。
次の要求をコピーして貼り付けます。
PATCH https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
{
"state": "Enabled",
"retentionDays": "0"
}
-
<workspaceId> と <warehouseId> は、対応する Fabric ワークスペースとウェアハウス ID に置き換えます。 これらの値を見つけるには、Fabric ポータルでウェアハウスにアクセスします。
-
<workspaceID>: /groups/ セクションの後の URL、または既存のウェアハウスで SELECT @@SERVERNAME を実行してワークスペース GUID を検索します。 たとえば、「 11aaa111-a11a-1111-1aaa-aa111111aaa 」のように入力します。
/ 文字は含めないでください。
-
<warehouseID>: /warehouses/ セクションの後の URL、または既存のウェアハウスで SELECT @@SERVERNAME を実行してウェアハウス GUID を検索します。 たとえば、「 11aaa111-a11a-1111-1aaa-aa111111aaa 」のように入力します。
/ 文字は含めないでください。
-
<BEARER_TOKEN> はご利用のベアラートークンに置き換えてください。
-
stateをEnabledに設定して監査をオンにしてください(Disabledでオフにしてください)。
-
retentionDaysパラメータを0に設定すると無制限に保持できます。 これは既定の設定です。
Von Bedeutung
拡張コード例では、ベアラー トークンを指定した直後に空の行を含める必要があります。 この空行はHTTPヘッダーの終わりとAPIコマンドの本体の始まりを示す拡張を示し、APIが両者を正しく区別できるようにします。
[要求の送信] を選択します。
REST API を使用して監査ログの状態を確認する
SQL監査ログが有効かどうかを確認するには、同じRESTクライアント拡張を使ってGETリクエストを送信してください。
- VS Codeで
.http 拡張子の新しいテキストファイルを作成します。
- 次の要求をコピーして貼り付け、独自の
workspaceId、<warehouseId>、<BEARER_TOKEN> を指定します。
GET https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
応答は ENABLED または DISABLED と現在の auditActionsAndGroups と predicateExpressionの構成を返します。
SQL 監査ログは、データベース内の特定のイベントをキャプチャする定義済みのアクション グループに依存します。 監査アクション グループの詳細については、Fabric Data WarehouseSQL 監査ログ>を参照してください。
VS Codeで .http 拡張子の新しいテキストファイルを作成します。
次の要求をコピーして貼り付け、独自の workspaceId、<warehouseId>、<BEARER_TOKEN> を指定します。
POST https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
[ "DATABASE_OBJECT_PERMISSION_CHANGE_GROUP" ]
[要求の送信] を選択します。
同じ PATCH APIリクエストを使って、既知のサービスプリンシパルからの活動や自動化の識別など、特定のイベントの生成を除外する述語式を設定しましょう。 述語構文の詳細については、述 語式構文を参照してください。
VS Codeで .http 拡張子の新しいテキストファイルを作成します。
次の要求をコピーして貼り付け、独自の workspaceId、<warehouseId>、<BEARER_TOKEN> を指定します。
PATCH https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: ******
{
"state": "Enabled",
"retentionDays": 10,
"predicateExpression": "NOT statement LIKE 'SELECT %'"
}
- この例は
SELECT 文を監査から除外し、 statement フィールドでフィルタリングしています。
- SQL監査を初めて有効にする際に、
predicateExpression を省略しても述語は適用されません。 後のアップデートでは、これを省略しても既存の述語は変更されません。 既存の述語を削除するために空文字列("")を指定します。
Von Bedeutung
述語フィルタリングは、すでにキャプチャされるように設定されているイベントのみを評価します。 この例で示されている SELECT 文をフィルタリングするには、「 バッチ完了 (BATCH_COMPLETED_GROUP)」アクショングループを有効にする必要があります。 詳細については、 データベースレベルの監査アクショングループおよびアクションをご覧ください。
[要求の送信] を選択します。
監査ログをクエリする
SQL監査ログデータは に保存されます。OneLakeのXELファイル です。 このデータには sys.fn_get_audit_file_v2 Transact-SQL(T-SQL)機能を使ってアクセスできます。 OneLakeにおける監査ファイルの保存方法の詳細については、Fabric Data WarehouseのSQL監査ログをご覧ください。
SQLクエリエディタやSQL Server Management Studio(SSMS)、Visual Studio CodeのMSSQL拡張機能などのクエリツールから、以下のサンプルT-SQLクエリを使用します。 ご自身のご <workspaceId> や <warehouseId>を必ず提供してください。
SELECT *
FROM sys.fn_get_audit_file_v2
('https://onelake.blob.fabric.microsoft.com/<workspaceId>/<warehouseId>/Audit/sqldbauditlogs/'
, default, default, default, default);
時間範囲でログをフィルター処理するには、次のクエリを使用します。
SELECT *
FROM sys.fn_get_audit_file_v2
('https://onelake.blob.fabric.microsoft.com/<workspaceId>/<warehouseId>/Audit/sqldbauditlogs/'
, default, default, '2025-03-30T08:40:40Z', '2025-03-30T09:10:40Z');
関連コンテンツ