LoginSignup
1
1

背景

自分用メモとして公開します。
Snowflakeを触り始めてずっとロール:ACCOUNTADMINで操作していました。
「自分は管理者だし~」とか思って。

そろそろACCOUNTADMINを使うのはやめて、デフォルトロールをSYSADMINにしたり、
タスク実行用のカスタムロール(以降、タスク用ロールと記載)を作成したりしてみました。

やったことメモ

タスク用ロールを作成。ここはGUIで設定

タスク用ウェアハウスを作成。ここはGUIで設定。X-Smallの1分停止設定

ウェアハウスのOWNERSHIPをタスク用ロールに設定

GRANT OWNERSHIP ON WAREHOUSE IDENTIFIER($タスク用WH) TO ROLE IDENTIFIER($タスク用ロール);

該当タスクのOWNERSHIPをタスク用ロールに設定

GRANT OWNERSHIP ON TASK IDENTIFIER($タスク名) TO ROLE IDENTIFIER($タスク用ロール);

該当タスクから呼ばれるプロシージャーのOWNERSHIPをタスク用ロールに設定

GRANT OWNERSHIP ON PROCEDURE IDENTIFIER($プロシージャー名) TO ROLE IDENTIFIER($タスク用ロール);

DBに該当タスクのUSAGE権限付与

GRANT USAGE ON TASK DATABASE IDENTIFIER($DB名) TO ROLE IDENTIFIER($タスク用ロール);

スキーマに該当タスクのUSAGE権限付与

GRANT USAGE ON SCHEMA IDENTIFIER($スキーマ名) TO ROLE IDENTIFIER($タスク用ロール);

S3接続用のインテグレーションに該当タスクのUSAGE権限付与

GRANT USAGE ON INTEGRATION $インテグレーション名 TO ROLE $タスク用ロール;

外部ステージに該当タスクのUSAGE権限付与

GRANT USAGE ON STAGE $外部ステージ名 TO ROLE $タスク用ロール;

今後追加されるかもしれない外部ステージにも権限付与されるように

GRANT USAGE ON FUTURE STAGES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;

既存テーブルに該当タスクのSELECT/INSERT/UPDATE/DELETE権限付与

GRANT SELECT ON ALL TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;
GRANT INSERT ON ALL TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;
GRANT UPDATE ON ALL TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;
GRANT DELETE ON ALL TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;

今後追加されるかもしれないテーブルにも権限付与されるように

GRANT SELECT ON FUTURE TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;
GRANT INSERT ON FUTURE TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;
GRANT UPDATE ON FUTURE TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;
GRANT DELETE ON FUTURE TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;

既存ダイナミックテーブルに該当タスクのSELECT権限付与

GRANT SELECT ON ALL DYNAMIC TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;

今後追加されるかもしれないテーブルにも権限付与されるように

GRANT SELECT ON FUTURE DYNAMIC TABLES IN SCHEMA $スキーマ名 TO ROLE $タスク用ロール;

ファイルフォーマットに該当タスクのUSAGE権限付与

GRANT USAGE ON FILE FORMAT IDENTIFIER($ファイルフォーマット名) TO ROLE IDENTIFIER($タスク用ロール);

感想

意外とやらなきゃいけないことが多い。
ちょっと設定してはタスク実行してみて、不足事項を見つけて追加していった。

書いたコードがIDENTITIER~っていうのがあるやつとないやつ混在してしまった。

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