■ はじめに
Snowflake で、DROPなどのSQLを実行した際に ~~~~ SQL access control error: Insufficient privileges to operate on xxxx ~~~~ が表示することが何度かあり、対応方法を結構忘れてしまうので、 備忘録としてメモしておく。
目次
【1】エラー内容 例1:Table「DEMO_HELLO」をDropした場合 例2:File Format「DEMO_FORMAT」をDropした場合 例3:Integration「DEMO_INTEG」を使用した場合 【2】原因 【3】対応案 例1の対応案 例2の対応案
【1】エラー内容
例1:Table「DEMO_HELLO」をDropした場合
SQL access control error: Insufficient privileges to operate on table 'DEMO_HELLO'
例2:File Format「DEMO_FORMAT」をDropした場合
SQL access control error: Insufficient privileges to operate on file_format 'DEMO_FORMAT'
例3:Integration「DEMO_INTEG」を使用した場合
SQL access control error: Insufficient privileges to operate on integration 'DEMO_INTEG'
【2】原因
* エラー内容を訳せばわかる。 => 権限が不充分
例2の和訳
SQLアクセス制御エラー ファイルフォーマット「DEMO_FORMAT」の操作するために不十分な特権
【3】対応案
* Ownerを変更してから実行する
構文
-- 対象オブジェクトを残す場合(Dropなどで削除しない) GRANT OWNER ON <対象オブジェクト(e.g. TABLE)> <対象テーブル> TO ROLE <変更したいロール> COPY CURRENT GRANTS; -- Dropなど削除する場合 GRANT OWNER ON <対象オブジェクト(e.g. TABLE)> <対象テーブル> TO ROLE <変更したいロール> REVOKE CURRENT GRANTS;
使用上の注意
* 「REVOKE CURRENT GRANTS」したら、 以下の関連記事のようになるケースもあるので注意。 => 「COPY CURRENT GRANTS」でやっておくほうが無難かも、、、
所有権変更後にエラー「current role has no privileges on it」
https://dk521123.hatenablog.com/entry/2023/04/14/151140
例1の対応案
-- テーブルのOwnerを変更する GRANT OWNER ON TABLE "DEMO_HELLO" TO ROLE admin REVOKE CURRENT GRANTS; -- 削除 DROP TABLE "DEMO_HELLO";
例2の対応案
-- ファイルフォーマットのOwnerを変更する GRANT OWNER ON FILE FORMAT "DEMO_FORMAT" TO ROLE admin REVOKE CURRENT GRANTS; -- 削除 DROP FILE FORMAT "DEMO_FORMAT";
例3の対応案
-- ストレージ統合のOwnerを変更する GRANT OWNER ON INTEGRATION "DEMO_INTEG" TO ROLE admin REVOKE CURRENT GRANTS;
関連記事
Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world ~
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ File Format ~
https://dk521123.hatenablog.com/entry/2022/07/28/153332
Snowflake ~ SHOW / DESCRIBE ~
https://dk521123.hatenablog.com/entry/2022/02/24/231532
エラー「Failed to cast variant value "" to XXX」時の対応
https://dk521123.hatenablog.com/entry/2021/12/17/102659
エラー「Table does not exist or not authorized」時の対応
https://dk521123.hatenablog.com/entry/2022/08/18/120935
所有権変更後にエラー「current role has no privileges on it」
https://dk521123.hatenablog.com/entry/2023/04/14/151140