まずは、DACと
任意アクセス制御(DAC): 各オブジェクトに所有者がおり、所有者はそのオブジェクトへのアクセスを許可できます。
RBACについて覚えておく。
ロールベースのアクセス制御(RBAC): アクセス権限がロールに割り当てられ、ロールはユーザーに割り当てられます。
Snowflakeにはオブジェクトなる概念があって、Organizationを一番の親としてウェアハウスだったりユーザーだったりロールだったりで派生していく。
もちろん、プログラミング言語のオブジェクトとは違う概念なので、ちょっと混同しがち。しかし全てのオブジェクトには所有者が割り振られている。
ウェアハウスにも所有者がいるし、テーブルやインテグレーションにも所有者がいる。
所有者が割り当てられたら所有者は自動的にテーブル一覧を見れたりテーブルにSELECTしたりテーブルをCREATEしたりできるかというとそうでもなく、GRANT ROLEで適宜ウェアハウスやテーブルに権限を付与してやらないといけない(イメージ図)
ご覧の通りロールは継承できるが、ロールに各種オブジェクトへの権限を付与していく必要がある。カスタムロールはSYSADMINを継承していくのがベストプラクティスのようだ。
以下わかりやすい。 datumstudio.jp
最終的に行き着くドキュメント。 docs.snowflake.com