Power BI で行レベル セキュリティ (RLS) を使用すると、特定のユーザーのデータ アクセスを制限できます。 フィルターは、行レベルでデータを制限します。 役割内でフィルターを定義できます。

Power BI Desktop で Power BI にインポートされたデータ モデルの RLS を構成できます。 SQL Server などの DirectQuery を使用しているデータセットに RLS を構成することもできます。 これまで、RLS を実装できるのは、Power BI の外部にあるオンプレミスの Analysis Services モデル内だけでした。 Analysis Services のライブ接続では、オンプレミスのモデルに行レベルのセキュリティを構成します。 このセキュリティ オプションは、ライブ接続データセットには表示されません。

Power BI Desktop 内でロールとルールを定義する

Power BI Desktop 内でロールとルールを定義できます。 Power BI に発行するとき、ロールの定義も発行されます。

動的セキュリティを最大限に利用する場合、プレビュー機能で DirectQuery の双方向のクロス フィルタリングを有効にする必要があります。 これにより、クロス フィルタリングが有効になり、セキュリティ フィルターが双方向で適用されます。

セキュリティ ロールは次のように定義できます。

  1. Power BI Desktop レポートにデータをインポートするか、DirectQuery 接続を構成します。

    メモ:

    Analysis Services ライブ接続の Power BI Desktop 内ではロールを定義できません。 Analysis Services モデル内で定義する必要があります。

  2. [モデリング] タブを選択します。

  3. [ロールの管理] を選択します。

  4. [作成] を選択します。

  5. ロールの名前を指定します。

  6. DAX ルールを適用するテーブルを選択します。

  7. DAX 式を入力します。 この式は true か false を返すはずです。 たとえば、[Entity ID] = “Value” のようになります。

    メモ:

    この式の中では username() を使用できます。 Power BI Desktop 内では username() の形式は DOMAIN\username になることにご注意ください。 Power BI サービス内では、ユーザーの UPN の形式になります。 また、必ずユーザー プリンシパル名の形式でユーザーを返す userprincipalname() を使用することもできます。

  8. DAX 式を作成した後、式ボックスの上にあるチェックを選択し、式を評価できます。

  9. [保存]を選択します。

Power BI Desktop 内のロールにユーザーを割り当てることはできません。 割り当ては Power BI サービス内で行われます。 username() または userprincipalname() DAX 関数を使用し、適切な関係を構成することで、Power BI Desktop 内で動的セキュリティを有効にできます。

Power BI Desktop 内でのロールの検証

ロールの作成後、Power BI Desktop 内でロールの結果をテストできます。 これを行うには、[ロールとして表示] を選択します。

[ロールとして表示] ダイアログでは、その特定のユーザーまたはロールに対して表示されるビューを変更できます。 作成したロールが表示されます。

作成したロールを選択し、[OK] を選択すると、そのロールが表示内容に適用されます。 レポートには、そのロールに関連するデータのみが表示されます。

その他のユーザーを選択し、特定のユーザーを指定することもできます。 Power BI サービスで使用されるユーザー プリンシパル名 (UPN) を指定することが推奨されます。 [OK] を選択すると、ユーザーに表示される内容に基づいてレポートがレンダリングされます。

メモ:

Power BI Desktop 内では、DAX 式に基づいて動的セキュリティを使用している場合、異なる結果のみが表示されます。

モデルのセキュリティの管理

データ モデルのセキュリティを管理するには、次の操作を行います。

  1. データセットの省略記号 [...] を選択します。
  2. [セキュリティ] を選択します。

移動先の RLS ページで、Power BI Desktop で作成した役割にメンバーを追加できます。 [セキュリティ] は、データセットの所有者のみに表示されます。 データセットがグループ内にある場合、セキュリティ オプションは、グループの管理者だけに表示されます。

Power BI Desktop 内でのみ、役割を作成または変更できます。

メンバーの操作

メンバーの追加

役割にメンバーを追加するには、追加するユーザー、セキュリティ グループ、または配布リストのメール アドレスまたは名前を入力します。 このメンバーは、組織内に存在する必要があります。 Power BI 内に作成したグループは追加できません。

役割名または [メンバー] の横のかっこ内の数字は、その役割に属しているメンバーの数を示します。

メンバーの削除

メンバーを削除するには、メンバー名の横の [X] を選択します。

Power BI サービス内でのロールの検証

役割をテストすることで、定義した役割が正しく動作することを検証することができます。

  1. 役割の横にある省略記号 (...) を選択します。
  2. [ロールとしてデータをテスト] を選択します。

この役割で使用できるレポートが表示されます。 このビューにはダッシュ ボードは表示されません。 上部の青色のバーの中に、適用される内容が表示されます。

[Now viewing as (次の表示)] を選択することで、その他の役割、または役割の組み合わせをテストすることができます。

特定のユーザーとしてデータを表示できます。または、役割の組み合わせを選択してそれらの動作を検証できます。

通常の表示に戻るには、[行レベルのセキュリティに戻る] を選択します。

username() または userprincipalname() DAX 関数の使用

データセット内で DAX 関数 username() または userprincipalname() を利用できます。 Power BI Desktop の式の中で使用することができます。 モデルを発行するときに、Power BI サービス内で使用されます。

Power BI Desktop 内で、username()DOMAIN\User の形式でユーザーを返し、userprincipalname()user@contoso.com の形式でユーザーを返します。

Power BI サービス内で、username()userprincipalname() は両方とも、ユーザーのユーザー プリンシパル名 (UPN) を返します。 これはメール アドレスに似ています。

Power BI での RLS とアプリ ワークスペースの使用

Power BI サービス内のアプリ ワークスペースに Power BI Desktop レポートを発行した場合、役割は読み取り専用のメンバーに適用されます。 メンバーはアプリ ワークスペース設定内の Power BI コンテンツだけを表示できることを示す必要があります。

警告:

メンバーが編集アクセス許可を持つようにアプリ ワークスペースを構成している場合、RLS の役割は適用されません。 ユーザーはすべてのデータを確認できます。

制限事項

クラウド モデルの行レベル セキュリティにおける現在の制限事項を次に示します。

  • Power BI サービス内でロール/ルールを以前に定義している場合、Power BI Desktop 内で再作成する必要があります。
  • RLS は、クライアントを使用して作成されたデータセットにのみ定義できます。 Excel で作成されたデータセットに対して RLS を有効にするには、最初にファイルを PBIX ファイルに変換する必要があります。 詳細情報
  • ETL と DirectQuery 接続のみサポートされます。 Analysis Services へのライブ接続は、オンプレミス モデルで処理されます。
  • 現在のところ、Q&A と Cortana は RLS でサポートされていません。 すべてのモデルで RLS が構成されている場合、ダッシュボードの Q&A 入力ボックスは表示されません。 これはロードマップにありますが、タイムラインは利用できません。
  • 外部共有は、現在のところ、RLS を使用するデータセットでは利用できません。
  • 任意の特定のモデルで、セキュリティ ロールに割り当てることができる Azure AD プリンシパル (個々のユーザーまたはセキュリティ グループ) の最大数は 1,000 です。 多数のユーザーをロールに割り当てるには、個々のユーザーではなく、セキュリティ グループを割り当てることを確認します。

既知の問題

以前に発行されていない場合、Power BI Desktop から発行しようとすると、エラー メッセージが届くという既知の問題があります。 シナリオは次のようになります。

  1. Anna には Power BI サービスに発行されたデータセットが与えられており、RLS を構成しています。

  2. Anna は Power BI Desktop でレポートを更新し、再発行します。

  3. Anna にはエラーが届きます。

回避策: この問題が解決されるまで、Power BI サービスから Power BI Desktop ファイルを再発行します。 これを行うには、[データの取得] > [ファイル] を選択します。

よく寄せられる質問

質問: 以前に、Power BI サービスでデータセットのロール/ルールを作成している場合はどうなりますか。 何もしなくても動作しますか。
回答: いいえ。 ビジュアルは正しく表示されません。 Power BI Desktop 内でロール/ルールを再作成し、Power BI サービスに発行する必要があります。

質問: Analysis Services データ ソースにこれらのロールを作成できますか。
回答: Power BI Desktop にデータをインポートした場合は作成できます。 ライブ接続を使用している場合、Power BI サービス内で RLS を構成できなくなります。 これは Analysis Services モデルのオンプレミス内で定義されます。

質問: RLS を使って、ユーザーがアクセスできる列またはメジャーを制限できますか。
回答: いいえ。 ユーザーは、特定のデータ行にアクセスできる場合は、その行のすべてのデータ列を見ることができます。

質問: RLS を使って、詳細なデータは表示されないようにしながら、ビジュアルの集計データにはアクセスできるようにすることができますか。
回答:いいえ、個々のデータ行は保護されますが、ユーザーは常に詳細データまたは集計データを見ることができます。

次の手順

Power BI Desktop での行レベルのセキュリティ (RLS)

他にわからないことがある場合は、 Power BI コミュニティで質問してみてください