- Kategorien:
Kontextfunktionen (Sitzungsobjekt)
IS_ROLE_IN_SESSION¶
Gibt TRUE zurück, wenn die Primärrolle oder die Sekundärrollen des aktuellen Benutzers der Sitzung die Berechtigungen 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:
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.
Wenn mit dieser Funktion über das Data Sharing-Verbraucherkonto auf eine sichere UDF oder sichere Ansicht zugegriffen wird, z. B. für eine Bedingung in einer Maskierungsrichtlinie, gibt diese Funktion immer einen NULL-Wert zurück. Dieses Verhalten verhindert, dass die Rollenhierarchie in einem Data Sharing-Verbraucherkonto offengelegt wird.
Es kann nur genau 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;