SnowPro Advanced: Administrator 無料問題 1 / 10 ・ 分野1: Snowflake Security, RBAC, and User Administration
ORGADMIN を有効にした通常のアカウントで、組織管理者が ORGADMIN をアクティブにして SNOWFLAKE.ORGANIZATION_USAGE のビューを引いたところ、権限が足りないというエラーになった。この組織には組織アカウントは無い。正しい対処はどれか。
- ORGADMIN で、SNOWFLAKE.ORG_USAGE_ADMIN アプリケーションロールを自分の ORGADMIN に付与してから引き直す
- 組織アカウントを作り、GLOBALORGADMIN に切り替えてから、組織アカウントの ORGANIZATION_USAGE を引き直す
- ORGADMIN はアカウント内のオブジェクトの権限を受け取れないので、ACCOUNTADMIN に切り替えてビューを引く
- ACCOUNTADMIN で、SNOWFLAKE の IMPORTED PRIVILEGES を ORGADMIN に付与する
正解と解説を見る
正解: D
正解の理由
ORGADMIN を有効にした通常のアカウントでは、共有データベース SNOWFLAKE にアクセスできる人なら ORGANIZATION_USAGE スキーマを使える。ところが既定では、このデータベースへの権限を持つのは ACCOUNTADMIN だけで、ORGADMIN は必要な権限を持っていない。そのため ACCOUNTADMIN が、SNOWFLAKE データベースの IMPORTED PRIVILEGES か、ORGANIZATION_USAGE_VIEWER などの SNOWFLAKE のデータベースロールを ORGADMIN に付与する。組織の管理者であることと、アカウントの共有データベースを読めることが別の権限になっている。
違う選択肢
「組織アカウントを作り、GLOBALORGADMIN に切り替えてから、組織アカウントの ORGANIZATION_USAGE を引き直す」… ORGANIZATION_USAGE スキーマは、組織アカウントにも、ORGADMIN を有効にした通常のアカウントにもある。今回のエラーは置き場所ではなく SNOWFLAKE データベースへの権限の問題である。
「ORGADMIN で、SNOWFLAKE.ORG_USAGE_ADMIN アプリケーションロールを自分の ORGADMIN に付与してから引き直す」… アプリケーションロールで ORGANIZATION_USAGE を渡すのは組織アカウントの場合で、付与するのも GLOBALORGADMIN である。ORGADMIN を有効にした通常のアカウントでは、SNOWFLAKE データベースへのアクセスで決まる。
「ORGADMIN はアカウント内のオブジェクトの権限を受け取れないので、ACCOUNTADMIN に切り替えてビューを引く」… ORGADMIN にも SNOWFLAKE データベースの権限を付与できる。既定で付いていないだけで、付与すれば ORGADMIN のまま引ける。ACCOUNTADMIN に切り替えて済ませると、組織の作業とアカウントの管理が同じロールに寄る。
似た設定との違い
組織アカウントでは、ORGANIZATION_USAGE のビューを既定で見られるのは GLOBALORGADMIN だけで、ほかの人へは ORG_USAGE_ADMIN などのアプリケーションロールで渡す。通常のアカウントで ACCOUNT_USAGE を渡すときは、組織のデータまで見えてしまわないよう、IMPORTED PRIVILEGES より SNOWFLAKE のデータベースロールを使うよう公式が勧めている。