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

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

重要:

Power BI サービス内で役割/ルールを定義した場合は、Power BI Desktop でこれらの役割を作成しなおし、サービスにレポートを公開する必要があります。

Power BI サービス内の RLS のオプションについては、こちらを参照してください。

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 式に基づいて動的セキュリティを使用している場合、異なる結果のみが表示されます。

制限事項

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

  • 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 モデルのオンプレミス内で定義されます。

次の手順

Power BI サービスでの行レベルのセキュリティ (RLS)

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