[小ネタ]Snowflakeで「自分が利用可能なロール」の一覧を求める

[小ネタ]Snowflakeで「自分が利用可能なロール」の一覧を求める

要は、Oracle Databaseで言うところのSESSION_ROLESが使いたいのですよ。
2020.10.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

前置き:Snowflakeのロールについて

Snowflakeでは権限を"ロール"という単位で管理します。システム管理者やロール作成者からロールの利用権を付与されると、そのユーザはUSE ROLEコマンドやワークシートのメニュー[ロールの切り替え]で、利用が許可されたロールを自身で切り替え、適切な権限を行使することができます(下図参考)。

本題:自分が利用可能なロールをクエリで調べる方法

自分が利用(選択)できるロールの一覧は、SNOWFLAKEデータベースのINFORMATION_SCHEMAスキーマ内にあるAPPLICABLE_ROLESビューを参照します。対応ドキュメントは以下です。

APPLICABLE_ROLESビューのカラム構造は以下です。

列名 データ型 説明
GRANTEE TEXT 権限が付与されるロールまたはユーザー
ROLE_NAME TEXT ロールの名前
ROLE_OWNER TEXT ロールの所有者
IS_GRANTABLE TEXT このロールを他のユーザーに付与できるかどうか

SnowflakeワークシートでAPPLICABLE_ROLESビューを確認します。

SELECT *
FROM snowflake.information_schema.applicable_roles;

このビューへの問い合わせで、直接および間接的に付与(ロールにロールが含まれる状況)されたロールが一覧表示されます。

注意点

注意点としては、表示されるロールに重複が発生する可能性があります。例として下図では、TABLEAU_ROLEが2件付与されています。

  • Row12:別途付与されているACCOUNT_SYSADMINTABLEAU_ROLEが含まれている(=間接的に付与されている)
  • Row13:ユーザYOSUKE_KATSUKIに直接TABLEAU_ROLEロールが与えられている

本来は、同じロールを複数付与する必要はないので、これを確認してロールの付与方法を検討するのも良いと思います。

以上、ご参考になれば幸いです。


データ分析基盤ならCSAにおまかせください!

クラスメソッドでは、データ分析に関わる皆様の作業コストを削減し、分析アクションを促進・効率化・自動化するためのデータ分析基盤「カスタマーストーリーアナリティクス」を提供・展開しています。興味をお持ち頂けた方は下記バナーをクリックし、詳細をご覧頂けますと幸いです。(各種問い合わせも承っております)

データ分析基盤を最短1ヶ月で導入可能


また、現在クラスメソッドでは毎週無料の相談会を開催しています。データ分析基盤の構築から、BIツール、データ統合など、ビッグデータ分析の導入や活用、技術についてお気軽にご相談ください。

データ分析相談会

この記事をシェアする

データ分析基盤を最短1ヶ月で導入できる

関連記事