Kategorien:

Systemfunktionen

SYSTEM$GET_TAG_ON_CURRENT_COLUMN

Gibt den Tag-Zeichenfolgenwert zurück, der der Spalte auf Grundlage des angegebenen Tags zugewiesen wurde, oder NULL, wenn der angegebenen Spalte kein Tag zugewiesen ist.

Wenn diese Funktion im Text (Body) einer Maskierungsrichtlinie oder einer Projektionsrichtlinie enthalten ist, kann der Wert eines Tags, das einer Spalte zugewiesen ist, den Rückgabewert der Richtlinie bestimmen, die dieser Spalte zugewiesen ist.

Syntax

SYSTEM$GET_TAG_ON_CURRENT_COLUMN( '<tag_name>' )
Copy

Argumente

'tag_name'

Bezeichner für das Tag als Zeichenfolge.

Wenn das Tag zum Beispiel cost_center heißt, verwenden Sie 'cost_center' als Argument.

Nutzungshinweise

  • Derzeit kann diese Funktion nur in einer Maskierungsrichtlinien- oder Projektionsrichtlinienbedingung verwendet werden, um den für eine Spalte festgelegten Tag-Zeichenfolgenwert dynamisch auszuwerten.

    Snowflake gibt einen Fehler zurück, wenn die Funktion entweder in einer SELECT-Abfrage, einer Zeilenzugriffsrichtlinie, einer Ansicht oder einer benutzerdefinierten Funktion (UDF) verwendet wird.

  • Beachten Sie, dass diese Funktion für alle tabellenähnlichen Objekte (z. B. Ansichten) gilt.

  • Das Tag muss beim Aufrufen dieser Systemfunktion vorhanden sein. Andernfalls gibt Snowflake die folgende Fehlermeldung zurück:

    Tag '<tag_name>' does not exist or not authorized.
    
    Copy

Beispiele

Maskierungsrichtlinie

Ein kontextbezogenes Beispiel für die Verwendung dieser Funktion mit einer Maskierungsrichtlinie finden Sie unter Beispiel 2: Schutz von Spaltendaten basierend auf dem Spalten-Tag-Zeichenfolgenwert.

Projektionsrichtlinie

Wenn die folgende Projektionsrichtlinie einer Spalte zugewiesen ist, muss das Tag tags.accounting_col auf dieser Spalte den Wert public haben, damit die Spalte projiziert werden kann.

CREATE PROJECTION POLICY mypolicy
AS () RETURNS PROJECTION_CONSTRAINT ->
CASE
  WHEN SYSTEM$GET_TAG_ON_CURRENT_COLUMN('tags.accounting_col') = 'public'
    THEN PROJECTION_CONSTRAINT(ALLOW => true)
  ELSE PROJECTION_CONSTRAINT(ALLOW => false)
END;
Copy