ある企業が、Power BI の行レベルセキュリティ(RLS: Row-Level Security)を設計している。東日本・西日本・中部の3地域の営業マネージャーがそれぞれ自分の担当地域のデータのみを参照できるレポートを作りたい。RLS を実装する最も適切な手順はどれか。
- A. Power BI Service の「データへのアクセス」設定で IP アドレス制限を設定し、各地域から特定データにしかアクセスできないようにする
- B. 各営業マネージャーのアカウントでのみアクセスできる別々の ADLS Gen2 コンテナにデータを分割して格納する
- C. 各地域用に3つの別々のレポートを作成し、それぞれ地域でフィルタリングしたデータセットを接続する
- D. セマンティックモデル内で RLS ロールを定義し(DAX フィルター式で地域を制限)、各営業マネージャーのアカウントを対応するロールに割り当てる
解答と解説を見る
正解: D
Power BI の RLS はセマンティックモデル内でロールを定義し、DAX フィルター式(例: [地域] = USERPRINCIPALNAME() のメール ドメイン部分や、ロールテーブルとの結合)でそのロールが参照できるデータ行を制限する機能である。定義したロールに各ユーザーを割り当てると、同一レポートでもユーザーごとにアクセスできるデータが自動的に制限される。1つのレポートとモデルで管理できるため、地域追加時もロール定義の追加のみで対応可能である。選択肢 C の複数レポート作成はレポートとデータセットの管理数が3倍になり、更新・保守の負荷が高くなる。選択肢 A の IP アドレス制限はネットワークレベルの制御であり、同一オフィスから複数地域担当者が利用する場合には適用できない。選択肢 B のストレージ分割はデータの重複管理が必要になり、RLS より運用コストが大幅に増加する。