- Kategorien:
POLICY_REFERENCES¶
Gibt eine Zeile für jedes Objekt zurück, dem die angegebene Richtlinie zugewiesen ist, oder gibt eine Zeile für jede Richtlinie zurück, die dem angegebenen Objekt zugewiesen ist.
Siehe auch: Ansicht POLICY_REFERENCES (Account Usage-Ansicht)
Syntax¶
Nur für Netzwerkrichtlinienobjekte:
POLICY_REFERENCES( POLICY_NAME => '<string>' , POLICY_KIND => 'NETWORK_POLICY' )
Für andere Richtlinienobjekte:
POLICY_REFERENCES( POLICY_NAME => '<string>' )
Für alle Richtlinienobjekte:
POLICY_REFERENCES( REF_ENTITY_NAME => '<string>' , REF_ENTITY_DOMAIN => '<string>' )
Argumente¶
POLICY_NAME => 'string'
Gibt den Namen der Richtlinie an.
Der gesamte Richtlinienname muss in einfache Anführungszeichen gesetzt werden.
Wenn der Richtlinienname zwischen Groß- und Kleinschreibung unterscheidet bzw. Sonderzeichen oder Leerzeichen enthält, sind doppelte Anführungszeichen erforderlich, damit sich Groß-/Kleinschreibung und Zeichen korrekt verarbeiten lassen. Die doppelten Anführungszeichen müssen in einfache Anführungszeichen eingeschlossen werden (d. h.
'"<Name_der_Richtlinie>"'
).
Derzeit können in Snowflake bei folgenden Richtlinientypen die Richtliniennamen als Argument angegeben werden:
POLICY_KIND => 'NETWORK_POLICY'
Verwenden Sie dieses Argument nur, wenn der
POLICY_NAME
-Wert eine Netzwerkrichtlinie ist. Verwenden Sie dieses Argument nicht, wenn Sie Namen von anderen Arten von Richtlinien angeben.REF_ENTITY_NAME => 'string'
Der Name des Objekts, für das die Richtlinie festgelegt wird, z. B. Tabellenname, Ansichtsname, Name der externen Tabelle oder Benutzername.
Der gesamte Objektname muss in einfache Anführungszeichen gesetzt werden.
Wenn der Objektname zwischen Groß- und Kleinschreibung unterscheidet bzw. Sonderzeichen oder Leerzeichen enthält, sind doppelte Anführungszeichen erforderlich, damit sich Groß-/Kleinschreibung und Zeichen korrekt verarbeiten lassen. Die doppelten Anführungszeichen müssen in einfache Anführungszeichen eingeschlossen werden (z. B.
'"<table_name>"'
).
REF_ENTITY_DOMAIN => 'string'
Der Typ des Objekts, für das die Richtlinie festgelegt wird.
Wenn das Objekt eine externe Tabelle ist, verwenden Sie
'TABLE'
als Argumentwert.Wenn das Objekt eine materialisierte Ansicht ist, verwenden Sie
'VIEW'
als Argumentwert.Folgende Domänen werden unterstützt:
'ACCOUNT'
'INTEGRATION'
'TABLE'
'TAG'
'USER'
'VIEW'
Rückgabewerte¶
Die Funktion gibt die folgenden Spalten zurück:
Spalte |
Datentyp |
Beschreibung |
---|---|---|
POLICY_DB |
VARCHAR |
Die Datenbank, in der die Richtlinie festgelegt ist. |
POLICY_SCHEMA |
VARCHAR |
Das Schema, in dem die Richtlinie festgelegt ist. |
POLICY_NAME |
VARCHAR |
Der Name der Richtlinie. |
POLICY_KIND |
VARCHAR(17) |
Der Typ der Richtlinie in Snowflake. |
REF_DATABASE_NAME |
VARCHAR |
Der Name der Datenbank, die ein Objekt enthält, auf das das abgefragte Objekt verweist. |
REF_SCHEMA_NAME |
VARCHAR |
Der Name des Schemas, das ein Objekt enthält, auf das das abgefragte Objekt verweist. |
REF_ENTITY_NAME |
VARCHAR |
Der Name des Objekts (d. h. Tabellenname, Ansichtsname, Name_der_externen_Tabelle), für das die Richtlinie festgelegt ist. |
REF_ENTITY_DOMAIN |
VARCHAR |
Der Typ des Objekts (d. h. Tabelle, Ansicht), für das die Richtlinie festgelegt ist. |
REF_COLUMN_NAME |
VARCHAR |
Der Name der Spalte, für die die Richtlinie festgelegt ist. |
REF_ARG_COLUMN_NAMES |
VARCHAR |
Gibt NULL für Zeilen im Abfrageergebnis zurück, in denen eine Maskierungsrichtlinie festgelegt ist. |
TAG_DATABASE |
VARCHAR |
Der Name der Datenbank, die das Tag enthält und der eine Richtlinie zugewiesen ist, oder NULL, wenn dem Tag keine Richtlinie zugewiesen ist. |
TAG_SCHEMA |
VARCHAR |
Der Name des Schemas, das das Tag enthält und dem eine Richtlinie zugewiesen ist, oder NULL, wenn dem Tag keine Richtlinie zugewiesen ist. |
TAG_NAME |
VARCHAR |
Der Name des Tags, dem eine Richtlinie zugewiesen ist, oder NULL, wenn dem Tag keine Richtlinie zugewiesen ist. |
POLICY_STATUS |
VARCHAR |
Gibt den Status der Richtlinie an. Dieser kann vier möglichen Werte haben: |
Für die Spalte POLICY_STATUS ist Folgendes zu beachten:
ACTIVE
Gibt an, dass die Spalte (d. h. REF_COLUMN_NAME) mit nur einer einzigen Richtlinie durch ein Tag verbunden ist.
MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN
Gibt an, dass der gleichen Spalte mehrere Maskierungsrichtlinien zugewiesen sind.
COLUMN_IS_MISSING_FOR_SECONDARY_ARG
Gibt an, dass die Richtlinie (d. h. POLICY_NAME) eine bedingte Maskierungsrichtlinie ist und die Tabelle (d. h. REF_ENTITY_NAME) keine Spalte mit demselben Namen hat.
COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG
Gibt an, dass es sich bei der Richtlinie um eine bedingte Maskierungsrichtlinie handelt und die Tabelle eine Spalte mit demselben Namen, aber einem anderen Datentyp als dem Datentyp in der Signatur der Maskierungsrichtlinie hat.
Nutzungshinweise¶
Die Ergebnisse werden auf der Grundlage der Berechtigungen zurückgegeben, die der Rolle erteilt werden, die die Abfrage ausführt:
Wenn die Rolle die globale Berechtigung APPLY MASKING POLICY hat, gibt Snowflake alle Maskierungsrichtlinien-Zuordnungen im Abfrageergebnis zurück.
Wenn die Rolle die globale Berechtigung APPLY ROW ACCESS POLICY hat, gibt Snowflake alle Zeilenzugriffsrichtlinien-Zuordnungen im Abfrageergebnis zurück.
Wenn die Rolle die Berechtigung APPLY für eine bestimmte Richtlinie hat (z. B. APPLY für MASKING POLICY), gibt Snowflake Zuordnungen dieser Richtlinie nur für Objekte zurück, deren Eigentümer die Rolle ist, die die Abfrage ausführt.
Wenn die Rolle entweder die globale Berechtigung APPLY oder die Berechtigung OWNERSHIP für die Richtlinie hat, aber nicht die Berechtigung OWNERSHIP für die Tabelle oder Ansicht (z. B. SELECT für die Tabelle), zeigt Snowflake keine Richtlinienzuordnungen im Abfrageergebnis an.
Wenn die Rolle keine Richtlinienberechtigungen hat, aber die Berechtigung OWNERSHIP für die Tabelle besitzt, gibt Snowflake eine Fehlermeldung aus und zeigt keine Richtlinienzuordnungen an.
Beim Aufrufen einer Tabellenfunktion des Information Schema muss die Sitzung über ein aktives INFORMATION_SCHEMA-Schema verfügen oder die Funktion muss vollqualifizierte Objektnamen verwenden. Weitere Details dazu finden Sie unter Snowflake Information Schema.
Wählen Sie zum Ausführen einer Abfrage eine Syntaxvariante aus. Das Mischen von Argumenten führt zu System- und Abfragefehlern.
Die Argumente
ref_entity_name
undref_entity_domain
müssen zusammen enthalten sein, sonst schlägt die Abfrage fehl.Snowflake gibt Fehler zurück, wenn der angegebene Objektname nicht existiert oder wenn der Abfrageoperator nicht berechtigt ist, eine Richtlinie für das Objekt anzuzeigen. Snowflake kann ein Resultset von Richtlinienzuordnungen zurückgeben, wenn der Operator eine Teilmenge der Richtlinienzuordnungen anzeigen darf. Nicht unterstützte Objekttypen, die als
ref_entity_domain
(z. B.'stream'
) aufgelistet werden, geben ebenfalls Fehler zurück.Snowflake gibt nur dann ein Resultset zurück, wenn der Abfrageoperator über die Berechtigung APPLY oder OWNERSHIP für die Richtlinie verfügt.
Beispiele¶
Rückgabe einer Zeile für jedes Objekt, d. h. Tabelle oder Ansicht, auf dessen Spalte die Maskierungsrichtlinie mit dem Namen ssn_mask
festgelegt wurde:
use database my_db; use schema information_schema; select * from table(information_schema.policy_references(policy_name => 'my_db.my_schema.ssn_mask'));
Rückgabe einer Zeile für jede Richtlinie, die der Tabelle my_table
zugewiesene ist:
use database my_db; use schema information_schema; select * from table(information_schema.policy_references(ref_entity_name => 'my_db.my_schema.my_table', ref_entity_domain => 'table'));