Kategorien:

Information Schema, Tabellenfunktionen

POLICY_REFERENCES

Gibt eine Liste aller Objekte (d. h. Tabellen, Ansichten) zurück, bei denen die angegebene Maskierungsrichtlinie für eine Spalte oder eine Zeilenzugriffsrichtlinie für eine Tabelle oder Ansicht festgelegt wurde.

Gibt eine Liste der Richtlinienzuordnungen zurück, die den angegebenen Objektnamen und Objekttyp aufweisen.

Siehe auch: Ansicht POLICY_REFERENCES (Account Usage-Ansicht)

Syntax

POLICY_REFERENCES(
      POLICY_NAME => '<string>' )

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

Argumente

POLICY_NAME => 'Zeichenfolge'

Gibt den Namen der Maskierungs- oder Zeilenzugriffsrichtlinie an.

  • Wenn der vollqualifizierte Name der Richtlinie (z. B. <Datenbankname>.<Schemaname>.<Richtlinienname>) verwendet wird, verwendet Snowflake die Sitzungsdatenbank und das Schema der Maskierungsrichtlinie. Weitere Informationen dazu finden Sie unter Auflösung des Objektnamens.

  • 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>"').

REF_ENTITY_DOMAIN => 'Zeichenfolge'

Der Typ des Objekts (d. h. Tabelle, Ansicht), für das die Richtlinie festgelegt ist.

  • Wenn der vollqualifizierte Name der Richtlinie (z. B. <Datenbankname>.<Schemaname>.<Richtlinienname>) verwendet wird, verwendet Snowflake die Sitzungsdatenbank und das Schema der Maskierungsrichtlinie. Weitere Informationen dazu finden Sie unter Auflösung des Objektnamens.

  • 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>"').

REF_ENTITY_NAME => 'Zeichenfolge'

Der Name des Objekts (d. h. Tabellenname, Ansichtsname, Name_der_externen_Tabelle), für das die Richtlinie festgelegt ist.

Wenn das Objekt eine externe Tabelle ist, verwenden Sie 'table' als Argument.

  • Wenn der vollqualifizierte Name der Richtlinie (z. B. <Datenbankname>.<Schemaname>.<Richtlinienname>) verwendet wird, verwendet Snowflake die Sitzungsdatenbank und das Schema der Maskierungsrichtlinie. Weitere Informationen dazu finden Sie unter Auflösung des Objektnamens.

  • 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>"').

Nutzungshinweise

  • Ergebnisse werden nur für die ACCOUNTADMIN-Rolle zurückgegeben.

  • 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 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 Berechtigungen APPLY oder OWNERSHIP für die Richtlinie verfügt.

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spalte

Datentyp

Beschreibung

CREATED_ON

TIMESTAMP_LTZ

Datum und Uhrzeit der Erstellung der Richtlinie.

POLICY_DB

TEXT

Die Datenbank, in der die Richtlinie festgelegt ist.

POLICY_SCHEMA

TEXT

Das Schema, in dem die Richtlinie festgelegt ist.

POLICY_NAME

TEXT

Der Name der Richtlinie.

POLICY_KIND

TEXT

Der Typ der Richtlinie in Snowflake.

REF_DATABASE_NAME

TEXT

Der Name der Datenbank, die ein Objekt enthält, auf das das abgefragte Objekt verweist.

REF_SCHEMA_NAME

TEXT

Der Name des Schemas, das ein Objekt enthält, auf das das abgefragte Objekt verweist.

REF_ENTITY_NAME

TEXT

Der Name des Objekts (d. h. Tabellenname, Ansichtsname, Name_der_externen_Tabelle), für das die Richtlinie festgelegt ist.

REF_ENTITY_DOMAIN

TEXT

Der Typ des Objekts (d. h. Tabelle, Ansicht), für das die Richtlinie festgelegt ist.

REF_COLUMN_NAME

TEXT

Der Name der Spalte, für die die Richtlinie festgelegt ist.

REF_ARG_COLUMN_NAMES

TEXT

Gibt NULL für Zeilen im Abfrageergebnis zurück, in denen eine Maskierungsrichtlinie für Sicherheit auf Spaltenebene festgelegt ist.

Beispiele

Abrufen der Liste der Objekte, für die die Richtlinie my_db.my_schema.ssn_mask für eine Spalte 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'));

Abrufen einer Liste von Richtlinienzuordnungen unter Verwendung der Argumente ref_entity_name und ref_entity_domain für die Tabelle my_table:

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