SnowflakeでCOPY INTOコマンドを実行したときに、以下のエラーが出たときの原因と解決方法を書く。
Error:SQL access control error: Insufficient privileges to operate on integration XXXX
原因と解決方法
COPY INTOコマンドを実行するときに、以下のどちらかの権限付与が必要。
- ステージのOWNERSHIP権限を持つロールにストレージ統合のUSAGE権限を付与。
- COPY INTOコマンドを実行するロールにストレージ統合のUSAGE権限を付与。
公式ドキュメントに書いていない?
ALTER STAGEでステージを操作する場合は1.の設定が必要なため、1.の設定をおすすめする。
エラーが出る状況
ステージ作成時にはストレージ統合のUSAGE権限が必須なため、あとからステージのOWNERSHIP権限かストレージ統合のUSAGE権限をはく奪するとエラーが起きる。
具体的にエラーが起きるパターン
- ステージのOWNERSHIP権限をFUTURE GRANTSで制御している
FUTURE GRANTSでステージのOWNERSHIP権限を制御している場合、ステージ作成後にステージのOWNERSHIP権限が指定のロールに移動する。ステージのOWNERSHIP権限が付与されたロールがストレージ統合のUSAGE権限を持っていない場合、エラーが起きる。