Power BI モデル オブジェクトへのアクセスを制限する

完了

データ モデリング担当者は、Power BI モデル オブジェクトへのユーザー アクセスを制限することを検討できます。 オブジェクト レベル セキュリティ (OLS) では、特定のテーブルと列とそのメタデータへのアクセスを制限できます。 通常は、従業員の個人データなどの機密データを格納するセキュリティで保護されたオブジェクトに OLS を適用します。

Power BI が OLS を適用すると、テーブルと列へのアクセスが制限されるだけでなく、メタデータをセキュリティで保護することもできます。 メタデータをセキュリティで保護する場合、 動的管理ビュー (DMV) を使用して、セキュリティで保護されたテーブルと列に関する情報を取得することはできません。

重要

表形式モデルでは、 パースペクティブを使用してテーブルと列 (およびその他のオブジェクト) を非表示にすることができます。 パースペクティブは、レポート作成者に特定の焦点を提供するのに役立つ、モデル オブジェクトの表示可能なサブセットを定義します。 パースペクティブは、モデルの複雑さを軽減することを目的としており、レポート作成者が関心のあるリソースを見つけるのに役立ちます。 ただし、パースペクティブはオブジェクトをセキュリティで保護しないため、セキュリティ機能ではありません。 ユーザーは、テーブルまたは列が表示されていない場合でもクエリを実行できます。

Adventure Works の例を考えてみましょう。 この組織には、 DimEmployee という名前のデータ ウェアハウス ディメンション テーブルがあります。 テーブルには、従業員名、電話、電子メール アドレス、給与を格納する列が含まれています。 一般的なレポートのコンシューマーは、従業員の名前と連絡先の詳細を表示できますが、給与値を表示することはできません。 給与額を表示できるのは、人事部の上級スタッフのみです。 そのため、データ モデラーは OLS を使用して、特定の人事スタッフにのみ給与列へのアクセスを許可しました。

スクリーンショットは、制限付き給与列を含む Employee テーブルのモデル ダイアグラム ビューを示しています。

OLS は、Azure Analysis Services (AAS) と SQL Server Analysis Services (SSAS) から継承された機能です。 この機能は、Power BI Premium で利用でき、Power BI に移行されたモデルの下位互換性を提供します。 このため、Power BI Desktop で OLS を完全に設定することはできません。

OLS を設定する

OLS を設定するには、まずロールを作成します。 RLS を設定する場合と同じ方法で、Power BI Desktop でロールを作成できます。 次に、ロールに OLS ルールを追加する必要があります。 この機能は Power BI Desktop ではサポートされていないため、別のアプローチを取る必要があります。

分析 用 XML (XMLA) エンドポイントを使用して、Power BI Desktop モデルに OLS ルールを追加します。 XMLA エンドポイントは Power BI Premium で使用でき、Power BI サービスの Analysis Services エンジンへのアクセスを提供します。 読み取り/書き込みエンドポイントは、データセット管理、アプリケーション ライフサイクル管理、高度なデータ モデリングなどをサポートします。 XMLA エンドポイント対応 API は、 表形式モデル スクリプト言語 (TMSL)PowerShell SqlServer モジュールなどのスクリプト作成に使用できます。 または、SSMS などのクライアント ツールを使用することもできます。 表 形式エディターなど、サードパーティ製のツール オプションもあります。これは、モデルを作成、保守、管理するためのオープンソース ツールです。

既定では、すべてのモデル テーブルと列は制限されません。 [ なし] または [ 読み取り] に設定できます。 [なし] に設定すると、ロールに関連付けられているユーザーはオブジェクトにアクセスできません。 [読み取り] に設定すると、ロールに関連付けられているユーザーはオブジェクトにアクセスできます。 特定の列を制限する場合は、テーブルが [なし] に設定されていないことを確認します。

OLS ルールを追加したら、モデルを Power BI サービスに発行できます。 RLS で同じプロセスを使用して、アカウントとセキュリティ グループをロールにマップします。

考慮事項

Power BI レポートで、ユーザーがテーブルまたは列にアクセスするアクセス許可を持っていない場合、エラー メッセージが表示されます。 メッセージは、オブジェクトが存在しないことを通知します。

レポート ビジュアルが制限された列に対してクエリを実行しようとしたときの Power BI Desktop エラー メッセージを示すスクリーンショット。

OLS がプロジェクトに適したソリューションであるかどうかを慎重に検討してください。 制限されたオブジェクトに対してクエリを実行する Power BI レポートをユーザーが開くと、エラー メッセージが混乱し、悪影響を及ぼす可能性があります。 彼らには、レポートが壊れているように見えます。 より良い方法は、さまざまなレポート コンシューマー要件に対して別のモデルまたはレポートのセットを作成することです。

制約

OLS を実装する際に注意する必要がある制限があります。

RLS と OLS を同じロールに混在させることはできません。 同じモデルで RLS と OLS を適用する必要がある場合は、種類ごとに個別のロールを作成します。 また、リレーションシップ チェーンが壊れた場合、テーブル レベルのセキュリティを設定することはできません。 たとえば、テーブル A と B、B と C の間にリレーションシップがある場合、テーブル B をセキュリティで保護することはできません。テーブル B がセキュリティで保護されている場合、テーブル A に対するクエリは、テーブル A と B、および B と C の間のリレーションシップを転送できません。この場合、テーブル A と C の間に個別のリレーションシップを設定できます。

図は、前の段落で説明したリレーションシップの例を示しています。

ただし、セキュリティで保護された列を参照するモデル リレーションシップは、列のテーブルがセキュリティで保護されていない場合に機能します。

最後に、メジャーをセキュリティで保護することはできませんが、セキュリティで保護されたオブジェクトを参照するメジャーは自動的に制限されます。

詳細については、「 オブジェクト レベルのセキュリティ」を参照してください。