ブログ

Power BIの行レベルセキュリティ(RLS)とは 表示データをユーザーごとに制御する方法を分かりやすく解説

#Power BI #セキュリティ #レベル #行 #行レベルセキュリティ #RLS

積極採用中
セミナー情報

Power BIの行レベルセキュリティ(Row Level Security:RLS)を活用すると、同じレポートを共有しても、ユーザーごとに「見える行」を制限できます。

    例えば、
  • 営業部は「営業データのみ」
  • 人事部は「人事データのみ」
  • 財務部は「財務データのみ」
  • といった表示制御が可能です。

固定のロールを割り当てる従来型のRLSに加え、動的RLSを使えば、ログインユーザーに応じたフィルターを自動適用でき、運用負荷を大幅に軽減可能です。

本記事では、基本ロール設定から動的RLSまで、手順とポイントをまとめて解説します。

RLS(行レベルセキュリティ)とは 何が実現できる?

RLSには主に以下の2種類があります。

    ■ 固定RLS(ロールベース)
     
  • 「営業ロール」「人事ロール」などを事前に作成
  • ロールごとにフィルター条件を定義
  • ユーザーをロールに割り当てることで制御
    ■ 動的RLS(ユーザー連動型)
     
  • ユーザー属性(メールアドレスなど)をマッピングテーブルで管理
  • USERPRINCIPALNAME() 関数でログインユーザーを取得
  • ユーザーに紐づく行のみを自動表示

固定RLSはシンプル、動的RLSは大規模組織向きです。

固定RLSの設定手順

行レベルセキュリティの基本形が「固定 RLS」です。

ユーザー数や部署数が少ない場合は、この方法がもっとも分かりやすく管理もしやすいでしょう。

ここでは、固定 RLS の作成からテストまでの具体的なステップを詳しく解説します。

  1. データの読み込み
  2. まずは売上データをPower BI Desktopに読み込みます。

  3. ロールの作成
  4. [モデリング] → [ロールの管理]を選択

    [+新規]を選択し、ロール名を「営業ロール」とします。
    「ルール」に以下を入力します。

    ※以下がフィルター条件のDAX関数

  5. ロールのテスト
  6. [モデリング] → [表示方法] をクリック。

    「営業ロール」を選択すると、営業データのみが表示されます。

  7. Power BI Serviceでの設定
  8. レポートを発行後、Power BI Service側でデータセット → […] → [セキュリティ]からロールにユーザーを追加します。

動的RLSの導入方法

企業規模が大きく、部署や権限パターンが多岐にわたる場合、一つひとつ固定ロールを作成・管理するのは手間がかかりすぎます。そこで活躍するのが「動的 RLS」です。ユーザーと属性(メールアドレスや部署コード)をマッピングしたテーブルを用意し、ログインユーザーに紐づく行だけを自動でフィルタリングする仕組み。運用効率を飛躍的に高めつつ、アクセス制御を柔軟に拡張できます。

  1. ユーザーマッピングテーブルを用意
  2. Emailと部署コードを対応させたテーブルを作成します。

  3. リレーション設定
  4. 売上テーブルとUserMappingテーブルを部署マスタテーブルの「部署コード」で接続します。(部署マスタを設定することで、1対多で適切にリレーション設定が可能です。)

  5. 動的ロール作成
  6. 再度 [ロールの管理] を開き、新しいロールを作成。売上テーブルに対し、以下を設定します。

この式は、

  1. 現在ログイン中のユーザーを取得
  2. そのユーザーの部署コードを参照
  3. 一致する部署コードの行のみ表示
  4. という仕組みです。

  5. Power BI Servicedeでのテスト
  6. Power BI Service上で「表示権限のテスト」を実行します。

    例)部署コードA01の人がアクセスした場合
    ↓↓

    例)部署コードF01の人がアクセスした場合
    ↓↓

よくあるトラブル&対策

どんなに正しく設定しても、運用中に「ユーザーが全データを見られてしまう」「期待どおりにフィルターが効かない」といったトラブルが発生しがちです。

本節では、行レベルセキュリティ(RLS)運用でよく起こる問題例と、その原因・対策を整理。事前にチェックリストとして活用することで、不具合の解消や再発防止にお役立てください。

まとめ|用途別おすすめ手法

行レベルセキュリティの方式は、大きく「固定 RLS(ロールベース)」と「動的 RLS(マッピング テーブル+DAX)」の二択です。

    固定RLSがおすすめの場合
  • 部署数が少ない
  • 管理対象ユーザーが限定的
  • 迅速に導入したい

「固定 RLS」は、設定もシンプルで導入までのハードルが低いのが特長です。部署単位や役職単位など、グループが数個程度に収まる組織では、手軽に運用できます。

    動的RLSがおすすめの場合
  • ユーザー数が多い
  • 部署移動が頻繁
  • 柔軟なアクセス制御が必要

ユーザー属性に応じて自動的にフィルターが適用される「動的 RLS」は、
マッピング テーブルと DAX 式を組み合わせ、メールアドレスやユーザー ID ごとにきめ細かくアクセス制御が可能です。ロール数を最小限に抑えつつ、大規模組織や頻繁に人事異動が発生する環境でもメンテナンスコストを大幅に削減できます。

いずれの方式も、一度正しく設計してしまえば、その後の運用は非常にスムーズです。
まずは、アクセス要件と組織規模を踏まえて小規模な PoC(概念実証)を実施し、実際のユーザーで動作を検証してみましょう。

その上で、社内のセキュリティポリシーや運用体制に最適な方式を選択することをおすすめします。

<Power BIハンズオンセミナー>
弊社ではPower BIをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら

<Power BIの導入支援>
弊社ではPower BIの導入支援を行っています。ぜひお気軽にお問い合わせください。
>>Power BIの導入支援の詳細はこちら

<PowerBIの入門書を発売中!>
弊社ではPower BIの導入から基本的な使い方・活用方法の基礎などをわかりやすく解説した書籍も販売しています。
>>目次も公開中!書籍の詳細はこちら

CONTACT
お問い合わせ

ご相談やご依頼、病院マスタなどについてのお問い合わせはこちらのお問い合わせフォームから。

サービスなどについてのお問い合わせ 病院マスタについてのお問い合わせ

メールお問い合わせ