Kategorien:

Information Schema, Tabellenfunktionen

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'
      )
Copy

Für andere Richtlinienobjekte:

POLICY_REFERENCES(
      POLICY_NAME => '<string>'
      )
Copy

Für alle Richtlinienobjekte:

POLICY_REFERENCES(
    REF_ENTITY_NAME => '<string>' ,
    REF_ENTITY_DOMAIN => '<string>'
    )
Copy

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: ACTIVE, MULTIPLE_MASKING_POLICY_ASSIGNED_TO_THE_COLUMN, COLUMN_IS_MISSING_FOR_SECONDARY_ARG oder COLUMN_DATATYPE_MISMATCH_FOR_SECONDARY_ARG.

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 und ref_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'));
Copy

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'));
Copy