- Kategorien:
Kontextfunktionen (Sitzungsobjekt)
IS_GRANTED_TO_INVOKER_ROLE¶
Gibt TRUE zurück, wenn die von der Funktion INVOKER_ROLE zurückgegebene Rolle die Berechtigungen der im Argument angegebenen Rolle auf Basis des Kontextes erbt, in dem die Funktion aufgerufen wird.
Die Funktion INVOKER_ROLE sorgt nur für Identifikation und Rückgabe der Kontorolle des Objekts, das eine SQL-Anweisung ausführt. Datenbankrollen werden nicht unterstützt.
- Siehe auch:
Syntax¶
IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
Argumente¶
'string_literal'
Der Name der Rolle.
Nutzungshinweise¶
Wenn Sie die Funktion IS_GRANTED_TO_INVOKER_ROLE mit einer Maskierungsrichtlinien oder einer Zeilenzugriffsrichtlinie verwenden möchten, muss Ihr Snowflake-Konto die Enterprise Edition oder höher haben.
Es kann nur ein Rollenname als Argument übergeben werden.
Die folgende Tabelle bietet eine Übersicht zu dem Kontext, in dem die Funktion aufgerufen werden kann, und die Rollenhierarchie, die Snowflake auswertet.
Kontext
Bewertete Rolle
Benutzer
Tabelle
CURRENT_ROLE
Ansicht
Rolle des Eigentümers der Ansicht
UDF
Rolle des Eigentümers der UDF
Gespeicherte Prozedur mit Aufruferrechten
CURRENT_ROLE
Gespeicherte Prozedur mit Eigentümerrechten
Rolle des Eigentümers der gespeicherten Prozedur
Aufgabe
Rolle des Eigentümers der Aufgabe
Stream
Die Rolle, die einen bestimmten Stream abfragt.
Wenn Sie eher die Rollenhierarchie für die aktuelle Sitzung auswerten möchten, rufen Sie stattdessen IS_ROLE_IN_SESSION auf.
Beispiel¶
Direktes Aufrufen der Funktion:
IS_GRANTED_TO_INVOKER_ROLE('ANALYST') --------------------------------------+ IS_GRANTED_TO_INVOKER_ROLE('ANALYST') | --------------------------------------+ TRUE | --------------------------------------+
Angeben der Funktion im Text (Body) der Maskierungsrichtlinie:
CREATE OR REPLACE MASKING POLICY mask_string AS
(val string) RETURNS string ->
CASE
WHEN IS_GRANTED_TO_INVOKER_ROLE('ANALYST') then val
ELSE '*******'
END;