【Power BI】行レベルセキュリティ(応用編)
おはようございます!MJです。
今回はPowerBIにおける行レベルセキュリティの応用編としての設定方法についてご説明いたします。
基礎編は以下のURLを参考にしてください。
行レベルセキュリティ(Row-level security : RLS)とは?
まずは前回紹介した行レベルセキュリティについて、改めて簡単にご紹介します。
- レポートを作成するためにPower BI Desktopでロールを作成
- Power BI Serviceでユーザーによって異なるロールを適用します。
このような設定でユーザーごとに違うデータフィルターを提供する機能となります。
大変便利な機能だと思いますが、ロールが多くなったり、ユーザー数が多くなったりすると、管理が大変になるという問題があります。
具体的には以下のとおりです。
- ユーザーごとに異なるロールが必要な場合、規則の数ほどロールを作らなければならない。
- ユーザーのロールを変更する場合、一人ずつ変更しなければならない。
解決方法
このような場合、どうすれば解決できるのか考えた結果、ユーザーの権限を整理したデータとユーザーを判別する関数を利用して複数のロールを一緒に管理することができました。
そうしましたら、前回使ったデータを利用して結果が同じ行レベルセキュリティを作ってみます。
Power BI Desktop設定
1. ユーザーアカウントと権限について整理したデータを作成
ユーザーのMicrosoftアカウント情報とフィルターに使うデータを入れた資料を作成します。Excelで作っても問題ありません。
2. 先ほど作成したデータと視覚化に使う基になるデータをフィルターする値でリレーションシップを組む
今回は「Country」カラムを利用してリレーションシップを組みました。そうしましたら、ユーザーごとに「Canada、France、Germany」のデータを集計することができます。
3. 行レベルセキュリティの新しいロールを追加
先ほど1.で作ったユーザーアカウント情報を判別するために「userprincipalname()」関数を使います。
[Account]は先ほど作ったユーザーアドレスが入っているカラムとなります。※ この設定をする前にオプションで「プレビュー機能>強化された行レベルセキュリティエディター」を有効化する必要があります。
以上、Power BI Desktopの設定は完了しました。
Power BI Service設定
1. ワークスペースに先ほど作ったPower BI資料をアップロードし、セマンティックモデルのセキュリティページに移動
2. Power BI Desktopで作成したロールにユーザーを追加
作られたロール一つにユーザーを追加します。
そうしますと、設定は完了できたので確認してみます。
設定確認
設定は完了できましたので、画面を確認してみます。
行レベルセキュリティの設定画面でロールの設定で「ロールとしてテスト」をクリックして移動します。
画面の上段にある「次のユーザーとして表示中」をクリックし、確認したいユーザーのMicrosoftのアドレスを入力します。
そうしますと、ユーザーの情報が表示され、適用をクリックします。
そしますと、ユーザーによって異なるデータフィルターが設定されていることが確認できました。
まとめ
ユーザーのセキュリティグループを編集するためには、最初に作った「1. ユーザーアカウントと権限について整理したデータ」だけを修正すれば、セキュリティグループの修正、ユーザーの権限変更が可能です。
皆さんも行レベルのセキュリティを一つのファイルで管理してみてください。