静的メソッドを使用して行レベルのセキュリティを構成する

完了

レベルのセキュリティ (RLS) の静的メソッドでは DAX フィルターの固定値を使用しますが、動的メソッドでは DAX 関数を使用します。

RLS にはいくつかの構成手順があり、次の順序で完了する必要があります。

  1. Microsoft Power BI Desktop でレポートを作成します。

    1. データをインポートします。

    2. 両方のテーブル間でセマンティック モデルを確認します。

    3. レポート ビジュアルを作成します。

  2. DAX を使用して、Power BI Desktop で RLS ロールを作成します。

  3. Power BI Desktop でロールをテストします。

  4. レポートを Microsoft Power BI サービスに配置します。

  5. Power BI サービスでメンバーをロールに追加します。

  6. Power BI サービスでロールをテストします。

Power BI Desktop でレポートを作成する

Power BI Desktop でレポートを作成するための一般的な手順を行います。 データの取得とクリーニングには、Microsoft Power Query を使用します。 次に、[モデリング] タブを使用して、2 つのテーブル間にリレーションシップが存在することを確認します。empID 列で 1 対多のリレーションシップである必要があります。

次の手順は、Power BI レポートの作成です。

RLS で使用する Power BI レポートのスクリーンショット。

上のテーブルには、すべての部門を含むすべての売上の行があることに注目してください。 特定の部門の従業員のみがその売り上げを見ることができるように、可視性を制限します。

Power BI Desktop で RLS ロールを作成する

Power BI Desktop で RLS ロールを作成するには、[モデリング] タブを選択し、[ロールの管理] を選択します。

Power BI Desktop の [モデリング] タブにある [ロールの管理] のスクリーンショット。

[ロールの管理] ページで、[作成] を選択します。

[ロールの管理] の [作成] ボタンのスクリーンショット。

Power BI の行レベルのセキュリティ (RLS) では、DAX を使用して、どのユーザーにどのデータを表示するかを制御します。 これは、ユーザーが Power BI レポートで選択するフィルター、スライサー、または対話操作に関係なく、常に適切なユーザーに別のフィルターを追加することであると考えてください。

[ロールの管理] ページで、各部門のロールを作成し、それに DAX 式を追加します。 たとえば、Game というロールを作成してから、DAX 式 [department] = "Game" を追加することができます。 そのロールのメンバーがレポートと対話するたびに、Power BI によってそのフィルターが相互作用に追加されるため、表示内容が制限されます。

等号の右側にあるフィルターでは固定値 (この場合は "Game") が使用されています。 これには、カテゴリを追加する必要がある場合に、新しい値を持つ新しいロールを DAX 式で作成する必要があるという意図があります。

[ロールの管理] ダイアログのスクリーンショット。ロール、テーブル、テーブル フィルターの DAX 式が表示されています。

DAX フィルターがディメンション テーブルにどのように適用されているかに注目してください。 データがスター スキーマ内で構成されている場合は、行レベルのセキュリティが向上します。 Products テーブルで行ったように、DAX フィルターをディメンション テーブルに適用します。

DAX フィルターは、ユーザーが使用するすべての相互作用、スライサー、フィルターに適用されます。 パフォーマンスの低い DAX フィルターがあると、ユーザー エクスペリエンスに悪影響が及びます。 そのため、DAX フィルターは、可能な限り単純なものにしてください。

Power BI Desktop でロールをテストする

[モデリング] タブを選択して [ロールとして表示] を選択することで、フィルターが機能していることを確認できます。

[モデリング] タブの [ロールとして表示] ボタンのスクリーンショット。

[ロールとして表示] ウィンドウで、Game ロールを選択します。 そのロールを対象にしたレポートが表示され、Game 部門に含まれているレコードのみが表示されます。

Power BI Desktop で実行されている行レベル セキュリティのスクリーンショット。

このフィルターを元に戻すには、[ロールとして表示] をもう一度選択し、[なし] を選択します。

レポートを Power BI サービスにデプロイする

[ホーム] タブの [発行] ボタンを選択し、ワークスペースを選択することで、レポートを Power BI サービスに配置できます。

Power BI サービスでメンバーをロールに追加する

Power BI サービスのロールにメンバーを追加するには、Power BI サービスのワークスペースに移動します。 レポートと同じ名前で作成したセマンティック モデルを検索します。 省略記号 (...) ボタンを選択し、[セキュリティ] を選択します。

セマンティック モデルのセキュリティ ボタンのスクリーンショット。

[行レベルのセキュリティ] 画面で、Microsoft Entra ID ユーザーとセキュリティ グループをセキュリティ ロールに追加できます。 このロールにメンバーを追加すると、以前に定義した DAX フィルターがメンバーに適用されます。 ロールに追加されていないが、レポートにはアクセスできるメンバーの場合、RLS は適用されません。 Game 部門の 3 人のメンバーは、Game ロールへの追加することができます。 これらのメンバーがサインインすると、レポートには、彼らに適用されるデータのみが表示されるようになります。

[行レベルのセキュリティ] 画面のスクリーンショット。

Power BI サービスでロールをテストする

Power BI サービス内のロールをテストするには、[行レベルのセキュリティ] 画面で Game ロールの横にある省略記号 (...) を選択し、[ロールとしてテスト] を選択しできます。

省略記号ボタンと [ロールとしてテスト] オプションのスクリーンショット。

このセクションには、Power BI サービスのそのロールのメンバーを対象としたレポートが表示されます。

これで終了です。 Power BI で行レベルのセキュリティが正常に実装されました。