こんにちは、Power BI サポート チームの山崎です。
Power BI Desktop や Power BI サービスにおいて、プライバシー レベルの構成が必要になることがありますが、「プライバシー レベルって何?なんのために設定するの?」と疑問を持ちながら、なんとなく設定されている方もいるのではないでしょうか。
今回は、プライバシー レベルはどのようなシナリオにおいて使用される設定か詳しくご案内いたします。
重要
本記事は弊社公式ドキュメントの公開情報を元に構成しておりますが、
本記事編集時点と実際の機能に相違がある場合がございます。
最新情報につきましては、参考情報として記載しておりますドキュメントをご確認ください。
プライバシー レベルとはなんですか?
データ ソースのプライバシー レベルの設定は、あるデータ ソース間を結合 (マージ) する際に、データ ソースからのデータ取得・更新時に、意図せず別のデータ ソースに、データが送信されることを防ぐための機能です。
左:Power BI Desktop 右:Power BIサービス
データ ソースを2つ以上ご利用の場合に機能するようなものとなっており、どのレベルを選択すべきかは、データの中身 (機密性) に依存します。
プライバシー レベルのレベルは以下3つに分かれており、公開情報でも参考までにどのようなデータ ベースが該当するかご案内しておりますが、最終的にはユーザー様がデータをどのように扱いたいか判断したうえで設定いただきますようお願いいたします。
設定 | 説明 | データ ソースの例 |
---|---|---|
プライベート | [プライベート] データ ソースには、機密情報や内密情報が含まれています。データ ソースの表示を、許可されているユーザーに限定できます。 プライベート データ ソースからのデータは、他のソースに (他のプライベート ソースにも) フォールディング処理されることはありません。 | Facebook データ、株式報奨が入ったテキスト ファイル、従業員の査定情報が入ったブックなどがあります。 |
組織 | [組織] データ ソースは、データ ソースの表示を、信頼されたユーザー グループに限定できます。 組織データ ソースからのデータは、パブリック データ ソースにフォールディング処理されることはなく、他の組織データ ソースやプライベート データ ソースにフォールディング処理される可能性があります。 | たとえば、イントラネットの SharePoint サイトにある Microsoft Word 文書に信頼できるグループに対してアクセス許可を与えます。 |
パブリック | [パブリック] データ ソースは、データ ソースに含まれるデータを全員が表示できます。 ファイル、インターネットのデータ ソース、またはブックのデータのみを [パブリック] に指定できます。 パブリック データ ソースからのデータは、他のソースに自由にフォールディング処理することができます。 | Microsoft Azure Marketplace からの無料のデータ、Wikipedia ページからのデータ、パブリックの Web ページからコピーしたデータの入ったローカル ファイルなどがあります。 |
どのプライバシー レベルを設定したらよいですか?
プライバシー レベルについては以下の順番で制御がかかるようになっております。
なし > パブリック > 組織 > プライベート
例えば、”組織” に設定されたデータ ソースと、”プライベート” に設定されたデータソースがある場合、”組織” に設定されたデータ ソースのデータを基にして、プライベートのデータを取得しようとした場合に、プライベートのデータが取得できないような制御となります。
このような制御動作のため、ひとつのデータセットにおいて複数データソースを扱う場合にプライバシー レベルが異なるとデータ取得が行えないエラーが発生する場合があります。特別な事情がない場合については、プライバシー レベルを同一のレベルに設定頂くことを推奨いたします。
上記を踏まえ、マージ取得元とマージ取得先で設定可能な組み合わせを以下表におまとめします。
=============================
○:マージ取得元の情報をマージ取得先に提供する
×:マージ取得元の情報をマージ取得先に提供しない
=============================
マージ取得先 | |||||
パブリック | 組織 | プライベート | 利用用途 | ||
マージ取得元 | プライベート | × | × | × | 機密情報が含まれているデータソース(例:Facebook,株式報酬等) |
組織 | × | ○ | × | イントラネットで利用するデータソース(例:イントラのSharePoint内Wordファイル等) | |
パブリック | ○ | ○ | ○ | 公開しても問題ない情報(例:Wikipedia) |
//マージ取得元の情報をマージ取得先に提供する場合(上記の表で 〇 の組み合わせの場合)
プライバシー レベルを無視した場合と同様に、マージ取得先に対して、マージ取得元のデータを使ってクエリを生成し、マージ取得先のデータ ソースに対してそのクエリを実行します。
// マージ取得元の情報をマージ取得先に提供しない場合(上記の表で × の組み合わせの場合)
マージ取得元のデータを使用してのクエリ生成は行わず、データをマージ取得元、マージ取得先ともにPower BI 側に取得してからマージを行います。
実際の動作を確認してみよう
以下各パターンの違いにつきまして、弊社サンプルレポートをもとにした検証結果を具体例でご説明いたします。
※クエリの内容はクエリ診断機能を用いておりますが、ここでは割愛いたします。本Blogの最後にご案内している参考情報をご確認ください。
=============================
○:マージ取得元の情報をマージ取得先に提供する
×:マージ取得元の情報をマージ取得先に提供しない
=============================
前提
今回の検証では、以下マージ取得元 “TB1” テーブルとマージ取得先 “TB2” テーブルを用意します。
// TB1
// TB2
// TB2 に TB1 のテーブルをマージさせた結果のテーブル
上記マージテーブルを作成する際に、[○:マージ取得元の情報をマージ取得先に提供する] プライバシー レベルの組み合わせの場合、マージする際に以下のようなクエリが流れます。
マージ取得先(TB2)に対して、Where 句でマージ取得元(TB1)のデータ(ID 列の値)を使用したクエリを生成し、マージ取得先(TB2)の DB に対してそのクエリを実行していることを表しています。
これが、マージ取得元の情報をマージ取得先に提供するという動きになります。
1 | select [_].[ID], |
一方、[×:マージ取得元の情報をマージ取得先に提供しない] プライバシー レベルの組み合わせの場合、マージする際に以下のようなクエリが流れます。
こちらは、マージ取得元(TB1)のデータを使用してのクエリ生成は行わず、データをマージ取得元(TB1)、マージ取得先 (TB2) ともに Power BI 側に取得してから、マージを行う動作となります。
1 | select [$Table].[ID] as [ID], |
参考情報
以上、本ブログが少しでも皆様のお役に立てますと幸いでございます。
アンケートご協力のお願い
Japan CSS Support Power BI Blog では、作成する記事やブログの品質向上を目的に、匿名回答でのアンケートを実施しております。
ユーザー様のご意見・ご要望を参考に今後もお役に立てるブログを目指してまいりますので、ぜひご協力いただけますと幸いでございます。
※ 所要時間は1分程度となります。
【ご協力のお願い】Microsoft Japan CSS Power BI Blog ご利用に関するアンケート
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。