Power BI Desktop の行レベルのセキュリティを使用してデータ アクセスを制限するRestrict data access with row-level security (RLS) for Power BI Desktop

Power BI Desktop で行レベル セキュリティ (RLS) を使用すると、特定のユーザーのデータ アクセスを制限できます。You can use row-level security (RLS) with Power BI Desktop to restrict data access for given users. フィルターは、行レベルでデータを制限します。Filters restrict data at the row level. 役割内でフィルターを定義できます。You can define filters within roles.

Power BI Desktop で Power BI にインポートされたデータ モデルの RLS を構成できます。You can now 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 Power BI. Analysis Services のライブ接続では、オンプレミスのモデルに行レベルのセキュリティを構成します。For Analysis Services live connections, you configure Row-level security on the on-premises model. このセキュリティ オプションは、ライブ接続データセットには表示されません。The security option doesn't show up for live connection datasets.

重要

Power BI サービス内で役割とルールを定義した場合は、Power BI Desktop でこれらの役割を再作成し、サービスにレポートを公開する必要があります。If you defined roles and rules within the Power BI service, you need to recreate those roles within Power BI Desktop and publish the report to the service. Power BI サービス内の RLS のオプションについては、こちらを参照してください。Learn more about options for RLS within the Power BI service.

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. [モデリング] タブから [ロールの管理] を選択します。From the Modeling tab, select Manage Roles.

    [ロールの管理] を選択する

  3. [ロールの管理] ウィンドウから [作成] を選択します。From the Manage roles window, select Create.

    [作成] を選択します

  4. [ロール] でロールの名前を指定します。Under Roles, provide a name for the role.

  5. [テーブル] で、DAX ルールを適用するテーブルを選択します。Under Tables, select the table to which you want to apply a DAX rule.

  6. [テーブル フィルターの DAX 式] ボックスに DAX 式を入力します。In the Table filter DAX expression box, enter the DAX expressions. この式からは値として true または false が返されます。This expression returns a value of 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.

  7. DAX 式を作成した後、式ボックスの上にあるチェックマークを選択し、式を評価します。After you've created the DAX expression, select the checkmark above the expression box to validate the expression.

    DAX 式を評価する

    注意

    この式ボックスでは、コンマを使用して DAX 関数の引数を区切ります。これは、通常はセミコロンが区切り文字として使用されるロケール (フランス語やドイツ語など) にも当てはまります。In this expression box, you use commas to separate DAX function arguments even if you're using a locale that normally uses semicolon separators (e.g. French or German).

  8. [保存] を選択します。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.

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. [モデリング] タブから [ロールとして表示] を選択します。From the Modeling tab, select View as Roles.

    [ロールとして表示] を選択する

    [ロールとして表示] ウィンドウが表示されます。このウィンドウには、作成したロールが表示されます。The View as roles window appears, where you see the roles you've created.

    [ロールとして表示] ウィンドウ

  2. 作成したロールを選択し、 [OK] を選択してそのロールを適用します。Select a role you created, and then select 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.

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

  4. [OK] を選択します。Select OK.

    そのユーザーに対して表示できる内容に基づいてレポートがレンダリングされます。The report renders based on what that user can see.

制限事項Limitations

クラウド モデルの行レベル セキュリティにおける現在の制限事項は次のようになります。The current limitations for row-level security on cloud models are as follows:

  • 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.

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

既知の問題Known issues

Power BI Desktop から既に発行されているレポートを発行しようとすると、エラー メッセージが出るという既知の問題があります。There's 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.

FAQFAQ

質問: 以前に、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.

質問: データ ソースにセキュリティ ロールが既に定義されています (SQL Server のロールや SAP BW のロールなど)。Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). これらと RLS の関係はどのようなものですか。What is the relationship between these and RLS?
回答: 答えは、データをインポートしているか、DirectQuery を使用しているかによって変わります。Answer: The answer depends on whether you're importing data or using DirectQuery. Power BI データセットにデータをインポートしている場合、データ ソースのセキュリティ ロールは使用されません。If you're importing data into your Power BI dataset, the security roles in your data source aren't used. この場合、Power BI でつながるユーザーにセキュリティ規則を適用するには、RLS を定義する必要があります。In this case, you should define RLS to enforce security rules for users who connect in Power BI. DirectQuery を使用している場合、データ ソースのセキュリティ ロールが使用されます。If you're using DirectQuery, the security roles in your data source are used. ユーザーがレポートを開くと、Power BI から基礎データ ソースにクエリが送信され、ユーザーの資格情報に基づいてデータにセキュリティ規則が適用されます。When a user opens a report Power BI sends a query to the underlying data source, which applies security rules to the data based on the user's credentials.

次の手順Next steps

この記事に関する詳細については、次のリソースを参照してください。For more information related to this article, check out the following resources: