Kategorien:

Kontextfunktionen (Sitzungsobjekt)

IS_ROLE_IN_SESSION

Gibt TRUE zurück, wenn die aktive Primärrolle oder die aktiven Sekundärrollen des aktuellen Benutzers der Sitzung die Berechtigung der angegebenen Rolle erben.

Die angegebene Rolle kann die aktuelle Primärrolle oder Sekundärrolle sein (d. h. die von CURRENT_ROLE bzw. CURRENT_SECONDARY_ROLES zurückgegebenen Rollen) oder eine beliebige Rolle, die in der Rollenhierarchie darunter liegt.

Wenn DEFAULT_SECONDARY_ROLES den Wert ALL hat, gibt die Funktion TRUE zurück, wenn eine Rolle, die dem Benutzer zugewiesen wurde, die Berechtigungen der angegebenen Rolle erbt.

Gibt FALSE zurück, wenn die angegebene Rolle entweder in der Rollenhierarchie über der aktuellen Primär- oder Sekundärrolle liegt oder überhaupt nicht in der Rollenhierarchie enthalten ist.

Siehe auch:

IS_OBJECT, Erweiterte Sicherheit auf Spaltenebene

Syntax

is_role_in_session( '<string_literal>' )

Argumente

'Zeichenfolgenliteral'

Der Name der Rolle.

Nutzungshinweise

  • Wenn Sie die Funktion IS_ROLE_IN_SESSION mit Sicherheit auf Spaltenebene verwenden möchten, muss Ihr Snowflake-Konto die Enterprise Edition oder höher sein.

  • Es kann nur ein Rollenname als Argument übergeben werden.

Beispiel

Überprüfen Sie, ob die einer bestimmten Rolle erteilten Berechtigungen an die aktuelle Rolle der Sitzung vererbt werden:

select is_role_in_session('ANALYST');

+-------------------------------+
| IS_ROLE_IN_SESSION('ANALYST') |
|-------------------------------|
| True                          |
+-------------------------------+

Verwenden Sie die Funktion in einer Maskierungsrichtlinie:

case
  when is_role_in_session('ANALYST') then val
  else '*******'
end;