はじめに
Power BIでRLSを設定する手順を紹介します。
本記事で紹介するのは動的な制御方法になります。
※RLSの静的制御の設定方法はこちら→【Power BI】RLSの設定方法 – 静的制御
Power BI DesktopでRLSを設定設定するためのロールを作成し、Power BI Serviceで作成したRLSのロールに対してユーザーを割り当てていきます。
使用するサンプルデータ
今回は3つのテーブルを使って、RLSの設定をしていきます。
・TRAN

・USER_MST

・COMPANY_MST

設定手順
1. Power BI Desktopで各テーブルに接続する

2. リレーションを設定する
※多対多になることを避けるため、COMPANY_MSTも必要となる
TRANとCOMPANY_MSTのリレーションは、クロスフィルターの方向を「単一」に設定

COMPANY_MSTとUSER_MSTのリレーションは、クロスフィルターの方向を「双方向」で両方向にセキュリティフィルターを適用する

3. 取り込んだデータで表を作成しておく

4. 「モデリング」>「ロールの管理」の順にクリック

5. 「新規」をクリック

6. ロールを任意の名前に設定

7. USER_MSTテーブルを選択し、「DAXエディターに切り替える」をクリック

8. 条件を入力して「保存」をクリック
[USER] == USERPRINCIPALNAME()

9. 「ロールの変更が正常に適用されました。」と表示されることを確認し、「閉じる」をクリック

10. 「ホーム」>「発行」の順にクリック

11. 発行先のワークスペースをクリックし、「選択」をクリック

12. 「✔成功しました!」の表示を確認

13. Power BI Serviceで発行先のワークスペースを開く

14. セマンティックモデルの「・・・」>セキュリティの順にクリック


15. RLSを適用したいユーザーのアドレスを入力し、「追加」をクリック
※「test01@gmail.com」を追加したと仮定します。

16. 追加されたことを確認したら「保存」をクリック

17. ロールにカーソルを合わせて、「・・・」>「ロールとしてテスト」をクリック

18. ログインしたユーザーのプリンシパル名で動的にレコードを制御することができる

注意事項
RLSはPower BI Serviceのワークスペースで「ビューアー」ロールが付与されているユーザーにのみ適用されます。
それ以外のロールを付与されているユーザーには適用されないので注意が必要です。

