Power BI モデル オブジェクトへのアクセスを制限する
データ モデリング担当者は、Power BI モデル オブジェクトへのユーザー アクセスを制限することを検討できます。 オブジェクト レベル セキュリティ (OLS) では、特定のテーブルと列とそのメタデータへのアクセスを制限できます。 通常は、従業員の個人データなどの機密データを格納するセキュリティで保護されたオブジェクトに OLS を適用します。
Power BI が OLS を適用すると、テーブルと列へのアクセスが制限されるだけでなく、メタデータをセキュリティで保護することもできます。 メタデータをセキュリティで保護する場合、 動的管理ビュー (DMV) を使用して、セキュリティで保護されたテーブルと列に関する情報を取得することはできません。
重要
表形式モデルでは、 パースペクティブを使用してテーブルと列 (およびその他のオブジェクト) を非表示にすることができます。 パースペクティブは、レポート作成者に特定の焦点を提供するのに役立つ、モデル オブジェクトの表示可能なサブセットを定義します。 パースペクティブは、モデルの複雑さを軽減することを目的としており、レポート作成者が関心のあるリソースを見つけるのに役立ちます。 ただし、パースペクティブはオブジェクトをセキュリティで保護しないため、セキュリティ機能ではありません。 ユーザーは、テーブルまたは列が表示されていない場合でもクエリを実行できます。
Adventure Works の例を考えてみましょう。 この組織には、 DimEmployee という名前のデータ ウェアハウス ディメンション テーブルがあります。 テーブルには、従業員名、電話、電子メール アドレス、給与を格納する列が含まれています。 一般的なレポートのコンシューマーは、従業員の名前と連絡先の詳細を表示できますが、給与値を表示することはできません。 給与額を表示できるのは、人事部の上級スタッフのみです。 そのため、データ モデラーは OLS を使用して、特定の人事スタッフにのみ給与列へのアクセスを許可しました。
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 レポートで、ユーザーがテーブルまたは列にアクセスするアクセス許可を持っていない場合、エラー メッセージが表示されます。 メッセージは、オブジェクトが存在しないことを通知します。
OLS がプロジェクトに適したソリューションであるかどうかを慎重に検討してください。 制限されたオブジェクトに対してクエリを実行する Power BI レポートをユーザーが開くと、エラー メッセージが混乱し、悪影響を及ぼす可能性があります。 彼らには、レポートが壊れているように見えます。 より良い方法は、さまざまなレポート コンシューマー要件に対して別のモデルまたはレポートのセットを作成することです。
制約
OLS を実装する際に注意する必要がある制限があります。
RLS と OLS を同じロールに混在させることはできません。 同じモデルで RLS と OLS を適用する必要がある場合は、種類ごとに個別のロールを作成します。 また、リレーションシップ チェーンが壊れた場合、テーブル レベルのセキュリティを設定することはできません。 たとえば、テーブル A と B、B と C の間にリレーションシップがある場合、テーブル B をセキュリティで保護することはできません。テーブル B がセキュリティで保護されている場合、テーブル A に対するクエリは、テーブル A と B、および B と C の間のリレーションシップを転送できません。この場合、テーブル A と C の間に個別のリレーションシップを設定できます。
ただし、セキュリティで保護された列を参照するモデル リレーションシップは、列のテーブルがセキュリティで保護されていない場合に機能します。
最後に、メジャーをセキュリティで保護することはできませんが、セキュリティで保護されたオブジェクトを参照するメジャーは自動的に制限されます。
詳細については、「 オブジェクト レベルのセキュリティ」を参照してください。