- 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.
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;