Power BI での行レベルのセキュリティ (RLS)Row-level security (RLS) with Power BI

Power BI で行レベル セキュリティ (RLS) を使用すると、特定のユーザーのデータ アクセスを制限できます。Row-level security (RLS) with Power BI can be used to restrict data access for given users. フィルターでは行レベルでデータ アクセスが制限され、ロール内でフィルターを定義することができます。Filters restrict data access at the row level, and you can define filters within roles. Power BI サービスでは、ワークスペースのメンバーがそのワークスペース内のデータセットにアクセスできることに注意してください。Be aware that in the Power BI service, members of a workspace have access to datasets in the workspace. RLS では、このデータ アクセスは制限されません。RLS doesn't restrict this data access.

Power BI Desktop で Power BI にインポートされたデータ モデルの RLS を構成できます。You can configure RLS for data models imported into Power BI with Power BI Desktop. SQL Server などの DirectQuery を使用しているデータセットに RLS を構成することもできます。You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. これまで、RLS を実装できるのは、Power BI の外部にあるオンプレミスの Analysis Services モデル内だけでした。Previously, you were only able to implement RLS within on-premises Analysis Services models outside of Power BI. Analysis Services のライブ接続では、オンプレミスのモデルに行レベルのセキュリティを構成します。For Analysis Services live connections, you configure Row-level security on the on-premises model. このセキュリティ オプションは、ライブ接続データセットには表示されません。The security option will not show up for live connection datasets.

Power BI Desktop 内でロールとルールを定義するDefine roles and rules in Power BI Desktop

Power BI Desktop 内でロールとルールを定義できます。You can define roles and rules within Power BI Desktop. Power BI に発行するとき、ロールの定義も発行されます。When you publish to Power BI, it also publishes the role definitions.

セキュリティ ロールを定義するには、次の手順に従います。To define security roles, follow these steps.

  1. Power BI Desktop レポートにデータをインポートするか、DirectQuery 接続を構成します。Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    注意

    Analysis Services ライブ接続の場合、Power BI Desktop 内でロールを定義することはできません。You can't define roles within Power BI Desktop for Analysis Services live connections. Analysis Services モデル内で定義する必要があります。You need to do that within the Analysis Services model.

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

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

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

  5. ロールの名前を指定します。Provide a name for the role.

  6. DAX ルールを適用するテーブルを選択します。Select the table that you want to apply a DAX rule.

  7. DAX 式を入力します。Enter the DAX expressions. この式は true か false を返すはずです。This expression should return a true or false. たとえば、[Entity ID] = “Value” のようになります。For example: [Entity ID] = “Value”.

    注意

    この式の中では username() を使用できます。You can use username() within this expression. Power BI Desktop 内では username() の形式は DOMAIN\username になることにご注意ください。Be aware that username() has the format of DOMAIN\username within Power BI Desktop. Power BI サービスと Power BI Report Server 内では、それはユーザーのユーザー プリンシパル名 (UPN) の形式になります。Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). また、必ずユーザー プリンシパル名 (username@contoso.com) の形式でユーザーを返す userprincipalname() を使用することもできます。Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  8. DAX 式を作成した後、式ボックスの上にあるチェックを選択し、式を評価できます。After you have created the DAX expression, you can select the check above the expression box to validate the expression.

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

Power BI Desktop 内でロールにユーザーを割り当てることはできません。You can't assign users to a role within Power BI Desktop. その割り当ては、Power BI サービスで行います。You assign them in the Power BI service. username() または userprincipalname() DAX 関数を使用し、適切な関係を構成することで、Power BI Desktop 内で動的セキュリティを有効にできます。You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

既定では、リレーションシップが一方向と双方向のいずれに設定されているかに関係なく、行レベルのセキュリティ フィルターで一方向のフィルターが使用されます。By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bi-directional. 行レベルのセキュリティで双方向のクロス フィルターを手動で有効にすることができます。その場合は、リレーションシップを選択して、 [両方向にセキュリティ フィルターを適用する] チェック ボックスをオンにします。You can manually enable bi-directional cross-filter with row-level security by selecting the relationship and checking the Apply security filter in both directions checkbox. 動的な行レベルのセキュリティを実装する場合は、このボックスをオンにする必要があります。そこで、ユーザー名またはログイン ID に基づいて行レベルのセキュリティを指定します。You should check this box when implementing dynamic row-level security, wherein you provide row-level security based on user name or login ID.

詳細については、「Power BI Desktop での DirectQuery を使用する双方向のクロス フィルタリング」と「表形式の BI セマンティック モデルの保護」の技術記事を参照してください。For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

セキュリティ フィルターの適用

Power BI Desktop 内でロールを検証するValidate the roles within Power BI Desktop

ロールを作成したら、Power BI Desktop 内でロールの結果をテストします。After you've created your roles, test the results of the roles within Power BI Desktop.

  1. [ロールとして表示] を選択します。Select View As Roles.

    [ロールとして表示] に、作成したロールが表示されます。In View as roles, you see the roles you've created.

  2. 作成したロールを選択し、 [OK] を選択して、そのロールを適用します。Select a role you created > OK to apply that role. レポートでは、そのロールに関連するデータがレンダリングされます。The report renders the data relevant for that role.

  3. その他のユーザーを選択し、特定のユーザーを指定することもできます。You can also select Other user and supply a given user. ユーザー プリンシパル名 (UPN) を、Power BI サービスおよび Power BI Report Server で使用されるものとして指定することをお勧めします。It's best to supply the User Principal Name (UPN) as that's what the Power BI service and Power BI Report Server use.

  4. [OK] を選択すると、ユーザーに表示される内容に基づいてレポートがレンダリングされます。Select OK and the report renders based on what that user can see.

Power BI Desktop の [その他のユーザー] には、DAX 式に基づいた動的セキュリティを使用している場合、異なる結果のみが表示されます。Within Power BI Desktop, Other user only displays different results if you're using dynamic security based on your DAX expressions.

モデルのセキュリティの管理Manage security on your model

データ モデルのセキュリティを管理するには、次の操作を行います。To manage security on your data model, you will want to do the following.

  1. データセットの省略記号 [...] を選択します。Select the ellipse (…) for a dataset.

  2. [セキュリティ] を選択します。Select Security.

    両方向にセキュリティ フィルターを適用する

移動先の RLS ページで、Power BI Desktop で作成した役割にメンバーを追加できます。This will take you to the RLS page for you to add members to a role you created in Power BI Desktop. [セキュリティ] は、データセットの所有者のみに表示されます。Only the owners of the dataset will see Security available. データセットがグループ内にある場合、セキュリティ オプションは、グループの管理者だけに表示されます。If the dataset is in a Group, only Administrators of the group will see the security option.

Power BI Desktop 内でのみ、役割を作成または変更できます。You can only create or modify roles within Power BI Desktop.

メンバーの操作Working with members

メンバーの追加Add members

役割にメンバーを追加するには、追加するユーザー、セキュリティ グループ、または配布リストのメール アドレスまたは名前を入力します。You can add a member to the role by typing in the email address, or name, of the user, security group or distribution list you want to add. Power BI 内に作成したグループは追加できません。You cannot add Groups created within Power BI. 組織外部のメンバーを追加できます。You can add members external to your organization.

メンバーの追加

役割名または [メンバー] の横のかっこ内の数字は、その役割に属しているメンバーの数を示します。You can also see how many members are part of the role by the number in parenthesis next to the role name, or next to Members.

役割に属しているメンバー

メンバーの削除Remove members

メンバーを削除するには、メンバー名の横の [X] を選択します。You can remove members by selecting the X next to their name.

メンバーの削除

Power BI サービス内でのロールの検証Validating the role within the Power BI service

役割をテストすることで、定義した役割が正しく動作することを検証することができます。You can validate that the role you defined is working correctly by testing the role.

  1. 役割の横にある省略記号 (...) を選択します。Select the ellipsis (...) next to the role.
  2. [ロールとしてデータをテスト] を選択します。Select Test data as role

ロールとしてテスト

この役割で使用できるレポートが表示されます。You will then see reports that are available for this role. このビューにはダッシュ ボードは表示されません。Dashboards are not presented in this view. 上部の青色のバーの中に、適用される内容が表示されます。In the blue bar above, you will see what is being applied.

現在 <役割> として表示しています

[Now viewing as (次の表示)] を選択することで、その他の役割、または役割の組み合わせをテストすることができます。You can test other roles, or combination of roles, by selecting Now viewing as.

その他の役割のテスト

特定のユーザーとしてデータを表示できます。または、役割の組み合わせを選択してそれらの動作を検証できます。You can choose to view data as a specific person, or you can select a combination of available roles to validate they are working.

通常の表示に戻るには、 [行レベルのセキュリティに戻る] を選択します。To return to normal viewing, select Back to Row-Level Security.

username() または userprincipalname() DAX 関数の使用Using the username() or userprincipalname() DAX function

データセット内で DAX 関数 username() または userprincipalname() を利用できます。You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Power BI Desktop の式の中で使用することができます。You can use them within expressions in Power BI Desktop. モデルを発行するときに、Power BI サービス内で使用されます。When you publish your model, it will be used within the Power BI service.

Power BI Desktop 内で、username()DOMAIN\User の形式でユーザーを返し、userprincipalname()user@contoso.com の形式でユーザーを返します。Within Power BI Desktop, username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of user@contoso.com.

Power BI サービス内で、username()userprincipalname() は両方とも、ユーザーのユーザー プリンシパル名 (UPN) を返します。Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). これはメール アドレスに似ています。This looks similar to an email address.

Power BI での RLS とアプリ ワークスペースの使用Using RLS with app workspaces in Power BI

Power BI サービス内のアプリ ワークスペースに Power BI Desktop レポートを発行した場合、役割は読み取り専用のメンバーに適用されます。If you publish your Power BI Desktop report to an app workspace within the Power BI service, the roles will be applied to read-only members. メンバーはアプリ ワークスペース設定内の Power BI コンテンツだけを表示できることを示す必要があります。You will need to indicate that members can only view Power BI content within the app workspace settings.

警告

メンバーが編集アクセス許可を持つようにアプリ ワークスペースを構成している場合、RLS の役割は適用されません。If you have configured the app workspace so that members have edit permissions, the RLS roles will not be applied to them. ユーザーはすべてのデータを確認できます。Users will be able to see all of the data.

グループ設定

制限事項Limitations

クラウド モデルの行レベル セキュリティにおける現在の制限事項を次に示します。Following is a list of the current limitations for row-level security on cloud models.

  • Power BI サービスでロールおよびルールを以前に定義している場合、Power BI Desktop 内で再作成する必要があります。If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • RLS は、Power BI Desktop を使用して作成されたデータセットにのみ定義できます。You can define RLS only on the datasets created with Power BI Desktop. Excel で作成されたデータセットに対して RLS を有効にするには、最初にファイルを Power BI Desktop (PBIX) ファイルに変換する必要があります。If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. 詳細情報Learn more

  • ETL と DirectQuery 接続のみサポートされます。Only ETL and DirectQuery connections are supported. Analysis Services へのライブ接続は、オンプレミス モデルで処理されます。Live connections to Analysis Services are handled in the on-premises model.

  • 現在、Cortana は RLS ではサポートされていません。Cortana is not supported with RLS at this time.

既知の問題Known issues

Power BI Desktop から既に発行されているレポートを発行しようとすると、エラー メッセージが出るという既知の問題があります。There is a known issue where you'll get an error message if you try to publish a previously published report from Power BI Desktop. シナリオは次のようになります。The scenario is as follows.

  1. Anna には Power BI サービスに発行されたデータセットが与えられており、RLS を構成しています。Anna has a dataset that is published to the Power BI service and has configured RLS.

  2. Anna は Power BI Desktop でレポートを更新し、再発行します。Anna updates the report in Power BI Desktop and republishes.

  3. Anna は、エラーを受け取ります。Anna receives an error.

回避策: この問題が解決されるまで、Power BI サービスから Power BI Desktop ファイルを再発行します。Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. これを行うには、 [データの取得] > [ファイル] を選択します。You can do that by selecting Get Data > Files.

よく寄せられる質問FAQ

質問: 場合、Power BI サービスで以前データセットのロールとルールを作成しました必要があるか。Question: What if I had previously created roles and rules for a dataset in the Power BI service? 何もしなくても動作しますか。Will they still work if I do nothing?
回答: いいえ。Answer: No. ビジュアルは正しく表示されません。Visuals will not render properly. Power BI Desktop 内でロールおよびルールを再作成し、Power BI サービスに発行する必要があります。You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

質問: Analysis Services データ ソースにこれらのロールを作成できますか。Question: Can I create these roles for Analysis Services data sources?
回答: Power BI Desktop にデータをインポートした場合は作成できます。Answer: You can if you imported the data into Power BI Desktop. ライブ接続を使用している場合、Power BI サービス内で RLS を構成できなくなります。If you are using a live connection, you will not be able to configure RLS within the Power BI service. これは Analysis Services モデルのオンプレミス内で定義されます。This is defined within the Analysis Services model on-premises.

質問: RLS を使って、ユーザーがアクセスできる列またはメジャーを制限できますか。Question: Can I use RLS to limit the columns or measures accessible by my users?
回答: いいえ。Answer: No. ユーザーは、特定のデータ行にアクセスできる場合は、その行のすべてのデータ列を見ることができます。If a user has access to a particular row of data, they can see all the columns of data for that row.

質問: RLS を使って、詳細なデータは表示されないようにしながら、ビジュアルの集計データにはアクセスできるようにすることができますか。Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
回答: いいえ、個々のデータ行は保護されますが、ユーザーは常に詳細データまたは集計データを見ることができます。Answer: No, you secure individual rows of data but users can always see either the details or the summarized data.

次の手順Next steps

Power BI Desktop での行レベルのセキュリティ (RLS)Row-level security (RLS) with Power BI Desktop

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