Kategorien:

Kontextfunktionen

CURRENT_AVAILABLE_ROLES

Gibt eine Zeichenfolge (VARCHAR) zurück, die alle dem aktuellen Benutzer zugewiesenen Rollen auflistet.

Die zurückgegebene Zeichenfolge enthält eine JSON-kodierte Liste aller Rollen, die der Benutzer in einer USE ROLE-Anweisung angeben kann. Dazu gehören alle Rollen, die dem Benutzer direkt zugewiesen sind, sowie alle Rollen mit niedrigeren Berechtigungen in der Hierarchie der Rollen, die dem Benutzer indirekt zugewiesenen sind. Der zurückgegebene Wert kann an die Funktion PARSE_JSON übergeben werden, um einen VARIANT-Wert zu erhalten, der eine Liste aller verfügbaren Rollen enthält.

Siehe auch:

CURRENT_ROLE, IS_ROLE_IN_SESSION

Syntax

CURRENT_AVAILABLE_ROLES()

Beispiele

Rufen Sie die Liste der dem aktuellen Benutzer zugewiesenen Rollen ab:

SELECT CURRENT_AVAILABLE_ROLES();

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

Verwenden Sie die Funktion PARSE_JSON, um einen VARIANT-Wert zurückzugeben, und die Funktion FLATTEN, um eine einzelne Zeile für jede Rolle zu erhalten:

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"             |
|     |       |                        | ]                         |
+-----+-------+------------------------+---------------------------+