Catégories :

Fonctions contextuelles

CURRENT_AVAILABLE_ROLES

Renvoie une chaîne (VARCHAR) qui répertorie tous les rôles accordés à l’utilisateur actuel.

La chaîne renvoyée contient une liste codée JSON de tous les rôles que l’utilisateur peut spécifier dans une instruction USE ROLE . Cela comprend tous les rôles qui sont directement accordés à l’utilisateur, ainsi que tous les rôles moins élevés dans la hiérarchie des rôles accordés directement à l’utilisateur. La valeur renvoyée peut être transmise à la fonction PARSE_JSON pour obtenir une VARIANT qui contient une liste de tous les rôles disponibles.

Voir aussi :

CURRENT_ROLE, IS_ROLE_IN_SESSION

Syntaxe

CURRENT_AVAILABLE_ROLES()

Exemples

Renvoyez la liste des rôles accordés à l’utilisateur actuel :

SELECT CURRENT_AVAILABLE_ROLES();

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

Utilisez la fonction PARSE_JSON pour renvoyer une VARIANT et la fonction FLATTEN pour obtenir une seule ligne pour chaque rôle :

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