Funktion IS_GRANTED_TO_INVOKER_ROLE: Änderung der Ausgabe¶
Achtung
Diese Verhaltensänderung ist in Bundle 2023_04 enthalten.
Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.
Das Verhalten der Funktion IS_GRANTED_TO_INVOKER_ROLE ist wie folgt:
- Bisher:
Die Funktion ergibt FALSE, wenn das Argument einer Rolle im folgenden Kontext entspricht:
Aufrufen der Funktion durch sich selbst: die Rollenhierarchie der aktiven Primärrolle (d. h. CURRENT_ROLE())
Aufruferrechte einer gespeicherten Prozedur
Eigentümerrechte der gespeicherten Prozedur
Aufgabeneigentümer
Wenn die Funktion in einer Maskierungsrichtlinie verwendet wird, die eine Tabelle schützt, gibt die Funktion die Rollenhierarchie des Eigentümers der Richtlinie zurück. Wenn sich die Rolle im Funktionsargument in der Rollenhierarchie der Rolle befindet, die Eigentümer der Richtlinie ist, gibt die Funktion TRUE zurück. Andernfalls gibt die Funktion FALSE zurück.
- Jetzt:
Die Funktionsauswertung verwendet die Hierarchie der Primärrolle für die Sitzung in den folgenden Kontexten:
Aufrufen der Funktion durch sich selbst.
Tabelle
Gespeicherte Prozedur mit Aufruferrechten.
Wenn die Funktion in einer gespeicherten Prozedur mit Eigentümerrechten verwendet wird, gibt die Funktion die Rollenhierarchie der Rolle zurück, die Eigentümer der gespeicherten Prozedur mit Eigentümerrechten ist.
Wenn die Funktion mit einer Aufgabe verwendet wird, gibt die Funktion die Rollenhierarchie der Rolle zurück, der die Aufgabe gehört.
Um vorhandene Maskierungsrichtlinien zu identifizieren, die die Funktion IS_GRANTED_TO_INVOKER_ROLE verwenden, führen Sie die folgenden Anweisungen aus:
USE ROLE ACCOUNTADMIN;
SELECT *
FROM snowflake.account_usage.masking_policies
WHERE policy_body ilike '%is_granted_to_invoker_role%';
Ref.: 984