LoginSignup
0
0

Databricksジョブで実行したSQLクエリーの結果を参照する際のアクセス権

Posted at

意外とハマりました。

クエリー結果を参照できる条件

ジョブの結果からSQLクエリーの実行結果を参照するには、以下の条件を全て満たす必要があります。

  1. 参照者がジョブの参照権限を持っている
  2. 参照者が実行されるクエリーの参照権限を持っている
  3. 以下のいずれかを満たしている
    1. ジョブの実行者とクエリーの実行者が一致している
    2. ジョブの実行者とジョブ結果の参照者が一致している

ジョブの実行者はジョブの画面のジョブの詳細で設定できます。
Screenshot 2023-10-24 at 7.48.23.png

クエリーの実行者はクエリーの権限設定で選択します。この際に注意しなくてはならないのは資格情報です。所有者として実行閲覧者として実行が選択できます。

  • 所有者として実行:クエリーの作成者の権限でクエリーが実行されます。
  • 閲覧者として実行:クエリーを参照するユーザーの権限でクエリーが実行されます。

Screenshot 2023-10-23 at 9.22.31.png

条件1と条件2は設定すれば良い話ですが、条件3-1を満たすのか、条件3-2を満たすのかでアプローチが変わってきます。

条件3-1「ジョブの実行者とクエリーの実行者が一致」を満たすアプローチ

ジョブの実行者とクエリーの実行者が一致している必要がありますが、ジョブの実行者は設定可能ですが固定です。クエリーの資格情報が所有者として実行になっているのであれば、ジョブの実行者もクエリーの所有者にすればOKです。

以下の例では、一番上のユーザーがクエリーlast_loginの所有者(クエリー所有者)です。このユーザーの権限でクエリーが実行されるようにします。また、参照者(takaaki.yayoi@databricks.com: 参照ユーザー)に対してクエリーの参照権限を付与します。
Screenshot 2023-10-24 at 7.55.52.png

このSQLクエリーを実行するジョブの実行者もクエリー所有者にします。
Screenshot 2023-10-24 at 7.57.55.png

これで、参照ユーザーもSQLクエリーの実行結果を参照できます。
Screenshot 2023-10-24 at 8.01.24.png

クエリーへの参照権限がないとエラーになります。
Screenshot 2023-10-24 at 8.02.52.png

条件3-2「ジョブの実行者とジョブ結果の参照者が一致」を満たすアプローチ

クエリーの資格情報を所有者として実行に設定できないケースがあります。その場合にはこちらのアプローチを取ることになります。クエリー結果の参照者をジョブの実行者にするというものです。注意点としては、特定のユーザーに対して設定できるものであり、グループには設定できないというものです。

クエリーの資格情報を閲覧者として実行を選択します。そして、参照者(takaaki.yayoi@databricks.com: 参照ユーザー)に対してクエリーの実行権限を付与します。また、クエリーで操作するテーブルに対して適切な参照権限を付与します。
Screenshot 2023-10-24 at 8.05.26.png

ジョブの実行者を参照ユーザーに設定してジョブを実行します。
Screenshot 2023-10-24 at 8.09.44.png

参照ユーザーとしてジョブの実行結果にアクセスするとクエリーの結果を確認できます。
Screenshot 2023-10-24 at 8.10.36.png

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

0
0
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
0
0