カテゴリ:

コンテキスト関数

CURRENT_AVAILABLE_ROLES

現在のユーザーに付与されているすべてのロールを一覧表示する文字列(VARCHAR)を返します。

返される文字列には、ユーザーにより USE ROLE ステートメントで指定できる、すべてのロールの JSON エンコードリストが含まれています。これには、ユーザーに対して直接付与されるすべてのロールに加えて、ユーザーに対して間接的に付与されるロールの階層内にある権限の低いロールすべてが含まれます。戻り値を PARSE_JSON 関数に渡して、使用可能なすべてのロールのリストを含む VARIANT を取得できます。

こちらもご参照ください。

CURRENT_ROLEIS_ROLE_IN_SESSION

構文

CURRENT_AVAILABLE_ROLES()

使用上の注意

  • この関数は、ユーザーが照会した場合にのみロールのリストを返します。アクティブなユーザーがいないサービスを使用して関数をクエリすると、クエリが失敗する可能性があります。たとえば、タスクの実行はユーザーに関連付けられていないシステムサービスによって実行されるため、関数は タスク 内でクエリされたときにロールのリストを返しません。この場合、クエリプランを完了できないため、クエリがタイムアウトする可能性があります。

現在のユーザーに付与されているロールのリストを返します。

SELECT CURRENT_AVAILABLE_ROLES();

+----------------------------------------------------------+
| ROW | CURRENT_AVAILABLE_ROLES()                          |
+-----+----------------------------------------------------+
|  1  | [ "PUBLIC", "ANALYST", "DATA_ADMIN", "DATA_USER" ] |
+-----+----------------------------------------------------+

PARSE_JSON 関数を使用して VARIANT を返し、 FLATTEN 関数を使用してロールごとに1つの行を取得します。

SELECT INDEX,VALUE,THIS FROM TABLE(FLATTEN(input => PARSE_JSON(CURRENT_AVAILABLE_ROLES())));

+-----+-------+------------------------+---------------------------+
| ROW | INDEX | VALUE                  | THIS                      |
+-----+-------+------------------------+---------------------------+
|   1 |     0 | "PUBLIC"               | [                         |
|     |       |                        |   "PUBLIC",               |
|     |       |                        |   "ANALYST",              |
|     |       |                        |   "DATA_ADMIN",           |
|     |       |                        |   "DATA_USER"             |
|     |       |                        | ]                         |
+-----+-------+------------------------+---------------------------+
|   2 |     1 | "ANALYST"              | [                         |
|     |       |                        |   "PUBLIC",               |
|     |       |                        |   "ANALYST",              |
|     |       |                        |   "DATA_ADMIN",           |
|     |       |                        |   "DATA_USER"             |
|     |       |                        | ]                         |
+-----+-------+------------------------+---------------------------+
|   3 |     2 | "DATA_ADMIN"           | [                         |
|     |       |                        |   "PUBLIC",               |
|     |       |                        |   "ANALYST",              |
|     |       |                        |   "DATA_ADMIN",           |
|     |       |                        |   "DATA_USER"             |
|     |       |                        | ]                         |
+-----+-------+------------------------+---------------------------+
|   4 |     3 | "DATA_USER"            | [                         |
|     |       |                        |   "PUBLIC",               |
|     |       |                        |   "ANALYST",              |
|     |       |                        |   "DATA_ADMIN",           |
|     |       |                        |   "DATA_USER"             |
|     |       |                        | ]                         |
+-----+-------+------------------------+---------------------------+