5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Fabric Power BI で「 このビジュアルのデータを読み込むことができません」の対処例

Last updated at Posted at 2024-01-30

はじめに

新しく搭載された Power BI のストレージモードである Dircet Lake は非常にパフォーマンスよく鮮度の新しいデータを分析できるようになった一方で、そのアクセス制御には注意点があるので紹介します。

今回の記事は、
The SELECT permission or external policy action 'Microsoft.Sql/Sqlservers/Databases/Schemas/Tables/Rows/Select' was denied on the object {テーブル名}
か、類似のエラーが表示されたときに対処する例です。

image.png

注意:2024/01時点の情報です

参考

そもそも Power BI のストレージモードの違いを理解するとこの記事も読みやすいかと思います。

エラー例

ウェアハウス、レイクハウスに初めから備え付けてある、セマンティックモデル(デフォルト)で、Direct Lake モードで動作するこんなレポートを作成したとします。

image.png

リネージはこんな感じ。セマンティックモデル(デフォルト)が利用されていると 原則 Direct Lake で動作しています。

image.png

このレポートを共有ボタンで直接共有します。(レポートの共有の仕方は様々ですが、今回は基になるウェアハウスなどには権限をつけないでレポートだけを共有した場合)

image.png

image.png

そうすると、共有された側でレポートを表示したときにこんな形でエラーが出ることがあります。

image.png

image.png

何が起きているか?

Direct Lake モードではメモリにデータを展開する際にDirect Query 相当の操作が実行されているというイメージが良いかと思います。
つまり、セマンティックモデル(旧 Power BI データセット)から、OneLake上のファイルへのアクセスが実行されているということです。

image.png

その際、セマンティックモデル(デフォルト)のデータソースへのクエリはシングルサインオンでのアクセスとなっているため、今回のケースでは共有された側の権限でデータソースとなるOneLakeにアクセスしているという構図になります。

対処策

①データソースとなるウェアハウスへのアクセスも付与する

セマンティックモデル(デフォルト)をソースにした場合にはこの方向しかないかと思います。※個人的にはこの辺の取り回しがカスタマイズしにくいのて、セマンティックモデル(デフォルト)は正式なレポートには使わないほうがいいかなと思ってます。

ウェアハウスへの権限付与の参考:https://learn.microsoft.com/ja-jp/fabric/data-warehouse/share-warehouse-manage-permissions#share-a-warehouse

  1. ウェアハウスの共有ボタンを押します。
    image.png
  2. 対象のユーザーにアクセス権を付与します。今回はデータベース全体を閲覧してもよいよ、ということで、
    「SQL を使用したすべてのデータの読み取り」をチェックします。
    image.png

これで、レポートの共有相手はデータを表示できます。
なお、この方法では、SSMSウェアハウスへの直接の接続許可もしてしまうことに注意ください。

②データソースへの認証をシングルサインオン以外にする

前提が変わりますが、セマンティックモデル(デフォルト)でない場合には、データソースへの認証方法を設定変更できます。

(オプション)セマンティックモデルの作成

以下からも Direct Lake モードのセマンティックモデルを作成できます。

image.png

この場合、ちょっとエラー表示が変わるようです。

image.png

では対処です。

  1. セマンティックモデルの設定を開きます。
    image.png

  2. ゲートウェイとクラウド接続を確認します。既定ではシングルサインオンとなっていることがわかります。
    image.png

  3. 個人用クラウド接続に変更すると、下部のデータソースへの資格情報でメッセージが表示されます。ので、資格情報を編集します。
    image.png

  4. 認証方法を選択する画面が表示されるので、これを OAuth にしてサインインします。ここでサインインしたアカウントでの権限でセマンティックモデルからウェアハウスへのクエリが発行されます。
    image.png
    ※下部のチェックをつけるとレポート参照者の権限でデータソースにアクセスするシングルサインオンの動作となります。

接続を作成するを選択した場合

個人用クラウド接続とは別に接続を作成するという選択肢もありました。

image.png

この場合、使いまわし可能な接続というオブジェクトというものを作成・使用することになります。

  1. 接続を作成するを選択すると、作成画面に遷移します。この中の設定は個人用クラウド接続で資格情報を編集した際と同様です。(おそらく、これを使うメリットは今後洗練されていくのでここでは割愛)
    image.png

  2. 作成するとセマンティックモデルに戻り、作成した接続を選択できるようになります。
    image.png

  3. 選択、適用すると、この接続に埋め込まれたアカウントの権限でセマンティックモデルからウェアハウスへのクエリが発行されます。
    image.png

③そもそもDirect Lake モードでセマンティックモデルを作成しない

Direct Lake は低遅延、高パフォーマンスというメリットを持つものですが、制限もあり、出たてということもあり情報も少ないため、使いどころは注意が必要です。
特に低遅延のメリットに関して、昨日のデータが見れればいい、ということであればそこまで大きなメリットはないかもしれません。(個人的にはインポートのスケジューリングが不要になるので、簡単なセマンティックモデルでは結構使いたい)

従来の Import or Direct Query のモードであれば、明示的に設定しない限りシングルサインオンという状態にはならないので、問題は起きないかと思います。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?