Verwenden von Objekt-Tags

Unter diesem Thema wird beschrieben, wie Sie ein Tag erstellen und es einem Snowflake-Objekt zuweisen. Es enthält auch Anweisungen zum Löschen eines Tags.

Erstellen Sie einen Tag.

Verwenden Sie den Befehl CREATE TAG, um ein neues Tag zu erstellen. Um zum Beispiel ein einfaches Tag namens cost_center ohne optionale Parameter zu erstellen, führen Sie Folgendes aus:

CREATE TAG cost_center;
Copy

Liste der zulässigen Tag-Werte festlegen

Mit dem Tag-Parameter ALLOWED_VALUES können Sie eine Liste der Zeichenfolgenwerte angeben, die dem Tag zugewiesen werden können, wenn das Tag für ein Objekt festgelegt wird. Benutzer können einem Tag nur dann einen Wert zuweisen, wenn der Wert in der definierten Liste enthalten ist.

Die maximale Anzahl möglicher Zeichenfolgenwerte für ein einzelnes Tag ist 300. Der Wert der Zeichenkette für jedes Tag kann bis zu 256 Zeichen lang sein.

Sie können die Liste der zulässigen Werte angeben, wenn Sie ein Tag mit einer CREATE TAG-Anweidung erstellen oder ersetzen oder wenn Sie ein bestehendes Tag mit der ALTER TAG-Anweisung ändern. Beachten Sie, dass die Anweisung ALTER TAG das Hinzufügen zulässiger Werte für ein Tag und das Löschen vorhandener Werte für ein Tag unterstützt.

Bemerkung

Wenn ein Tag so konfiguriert ist, dass es automatisch auf Zielobjekte übertragen wird, kann die Reihenfolge der Werte in der Liste der zulässigen Werte die Lösung von Konflikten beeinflussen. Weitere Informationen dazu finden Sie unter Konflikte bei der Tag-Weitergabe.

Um die Liste der zulässigen Werte für ein Tag zu ermitteln, rufen Sie die Funktion SYSTEM$GET_TAG_ALLOWED_VALUES auf.

Beispiele

Erstellen Sie ein Tag mit dem Namen cost_center mit finance und engineering als den beiden einzigen zulässigen Zeichenfolgenwerten:

CREATE TAG cost_center
  ALLOWED_VALUES 'finance', 'engineering';
Copy

Prüfen Sie die zulässigen Werte:

SELECT SYSTEM$GET_TAG_ALLOWED_VALUES('governance.tags.cost_center');
Copy

Ändern Sie das Tag mit dem Namen cost_center, um marketing als zulässigen Zeichenfolgenwert hinzuzufügen:

ALTER TAG cost_center
  ADD ALLOWED_VALUES 'marketing';
Copy

Ändern Sie das Tag mit dem Namen cost_center, um engineering als zulässigen Zeichenfolgenwert zu entfernen:

ALTER TAG cost_center
  DROP ALLOWED_VALUES 'engineering';
Copy

Definieren Sie ein Tag, das automatisch weitergegeben wird.

Mit dem Parameter PROPAGATE-Tag können Sie ein Tag so konfigurieren, dass es unter bestimmten Umständen automatisch von einem Quellobjekt auf Zielobjekte übertragen wird. Dieser PROPAGATE-Parameter kann auf die folgenden Werte eingestellt werden:

  • PROPAGATE = ON_DEPENDENCY: Das Tag wird auf ein Zielobjekt übertragen, wenn es eine Objektabhängigkeit gibt.

  • PROPAGATE = ON_DATA_MOVEMENT: Das Tag wird auf ein Zielobjekt übertragen, wenn Daten vom Quellobjekt auf das Zielobjekt übertragen werden.

  • PROPAGATE = ON_DEPENDENCY_AND_DATA_MOVEMENT: Das Tag wird sowohl für Objektabhängigkeiten als auch für Datenbewegungen weitergegeben.

Weitere Informationen über die Weitergabe finden Sie unter Automatische Tag-Weitergabe mit benutzerdefinierten Tags.

Beispiele

Erstellen Sie ein neues Tag, das automatisch weitergegeben wird, wenn eine Objektabhängigkeit besteht.

CREATE TAG data_sensitivity PROPAGATE = ON_DEPENDENCY;
Copy

Aktualisieren Sie ein vorhandenes Tag, um die automatische Übertragung sowohl für Objektabhängigkeiten als auch für Datenverschiebungen zu aktivieren.

ALTER TAG data_sensitivity SET PROPAGATE = ON_DEPENDENCY_AND_DATA_MOVEMENT;
Copy

Aktualisieren Sie ein vorhandenes Tag, um die Weitergabe zu deaktivieren.

ALTER TAG data_sensitivity UNSET PROPAGATE;
Copy

Ein Tag setzen

Über die Benutzeroberfläche <label-object_tagging_assign_ui> oder SQL können Sie einem Objekt ein Tag zuweisen.

Wenn Sie ein Tag auf ein Objekt setzen, müssen Sie den Wert des Tags festlegen. Dieser Zeichenfolgenwert kann bis zu 256 Zeichen lang sein.

Der Benutzer, der ein Tag erstellt hat, hat möglicherweise eine Liste zulässiger Werte angegeben. In diesem Fall können Sie nur einen Tag-Wert festlegen, der in der Liste enthalten ist. Um die Liste der zulässigen Zeichenfolgenwerte für ein bestimmtes Tag zu erhalten, rufen Sie die Funktion SYSTEM$GET_TAG_ALLOWED_VALUES auf. Angenommen, das Tag cost_center ist in einer Datenbank mit dem Namen governance und einem Schema mit dem Namen tags gespeichert. Sie können Folgendes ausführen, um festzustellen, ob Sie den Tag-Wert auf finance oder marketing setzen können:

SELECT SYSTEM$GET_TAG_ALLOWED_VALUES('governance.tags.cost_center');
Copy
+--------------------------------------------------------------+
| SYSTEM$GET_TAG_ALLOWED_VALUES('GOVERNANCE.TAGS.COST_CENTER') |
|--------------------------------------------------------------|
| ["finance","marketing"]                                      |
+--------------------------------------------------------------+

Verwenden Sie Snowsight, um Tags zu setzen

Mit Snowsight können Sie ein Tag auf bestehende Tabellen, Views und Spalten setzen.

Es gibt mehrere Möglichkeiten, einen Tag zu setzen:

  • Navigieren Sie mithilfe des Objekt-Explorers zur gewünschten Tabelle, Ansicht oder Spalte (das heißt Data » Databases).

    Wählen Sie das Menü More (d. h. ...) » Edit, und wählen Sie + Tag aus. Befolgen Sie die Anweisungen, um die Tag-Zuweisung zu verwalten.

  • Navigieren Sie zum Bereich Governance (d. h. Monitoring » Governance) in der Snowsight, und gehen Sie wie folgt vor:

    • Wählen Sie eine Kachel, einen Verteilungsprozentsatz und einen der am häufigsten verwendeten Tags oder Tabellen aus. Wenn Sie im Dashboard ein Element auswählen, leitet Snowsight Sie zur Registerkarte Tagged Objects weiter.

    • Ändern Sie die Filter nach Bedarf. Wenn Sie ein Objekt oder eine Spalte auswählen, leitet Snowsight Sie zu dessen/deren Position im Objekt-Explorer weiter. Aktualisieren Sie die Tag-Zuweisung nach Bedarf.

  • Navigieren Sie direkt zur Registerkarte Tagged Objects. Ändern Sie die Filter, wählen Sie ein Objekt oder eine Spalte aus, und verwalten Sie die Tag-Zuweisungen.

Bemerkung

Für den Zugriff auf den Bereich Governance muss Ihr Snowflake-Konto die Enterprise Edition oder höher verwenden. Darüber hinaus müssen Sie eine der folgenden Rollen haben:

  • Verwenden Sie die Rolle ACCOUNTADMIN.

  • Verwenden Sie eine Rolle, die über die Datenbankrollen GOVERNANCE_VIEWER und OBJECT_VIEWER verfügt.

    Informationen über diese Datenbankrollen finden Sie unter SNOWFLAKE-Datenbankrollen.

Verwenden Sie SQL, um Tags zu setzen

Sie können SQL-Befehle verwenden, um bei der Erstellung eines neuen Objekts ein Tag zu setzen oder um ein Tag auf ein bestehendes Objekt zu setzen.

Um ein Tag für ein neues Objekt zu setzen, das Sie erstellen, verwenden Sie den Befehl CREATE … WITH TAG. Um zum Beispiel einem Warehouse, das Sie gerade erstellen, ein Tag cost_center zuzuweisen, führen Sie Folgendes aus:

CREATE WAREHOUSE mywarehouse WITH TAG (cost_center = 'sales');
Copy

Um einTag für ein bestehendes Objekt zu setzen, verwenden Sie den Befehl ALTER … SET TAG. Um zum Beispiel einem bestehenden Warehouse ein Tag cost_center zuzuweisen, führen Sie Folgendes aus:

ALTER WAREHOUSE wh1 SET TAG cost_center = 'sales';
Copy

Erweitertes Beispiel: Erstellen und Zuweisen von Tags mit SQL

Das folgende erweiterte Beispiel bietet einen allgemeinen Überblick über die Verwendung von SQL zur Implementierung von Objekt-Tags. Es zeigt Ihnen, wie Sie Folgendes tun können:

  • Verwalten Sie die Zugriffssteuerungsrechte, die für die Arbeit mit Tags erforderlich sind.

    Der Einfachheit halber wird in diesem Workflow von einem zentralen Verwaltungsansatz für Tags ausgegangen, bei dem die kundenspezifische Rolle tag_admin sowohl die CREATE TAG- als auch die APPLY TAG-Berechtigungen besitzt. Für alternative Ansätze, siehe Ansätze für die Zuweisung von Tagging-Berechtigungen.

  • Tag mit CREATE TAG-Anweisung erstellen

  • Weisen Sie einem neuen Snowflake-Objekt mit dem Befehl CREATE <Objekt> ein neues Tag zu.

  • Weisen Sie bestehenden Snowflake-Objekten mit den Befehlen ALTER <Objekt> ein Tag zu.

  1. Erstellen Sie eine kundenspezifische Rolle, und weisen Sie die Berechtigungen zu.

    In einem zentralen Verwaltungsansatz ist die kundenspezifische Rolle tag_admin für die Erstellung und Zuweisung von Tags zu Snowflake-Objekten zuständig.

    Beachten Sie, dass in diesem Beispiel die Systemrolle ACCOUNTADMIN verwendet wird. Wenn die Verwendung dieser Rolle mit deren höheren Berechtigungen in einer Produktionsumgebung nicht erwünscht ist, überprüfen Sie, ob die Rolle, die der kundenspezifischen Rolle tag_admin Berechtigungen zuweist, über die notwendigen Berechtigungen verfügt, um die kundenspezifische Rolle tag_admin zu qualifizieren. Weitere Informationen dazu finden Sie unter Zugriffssteuerungsrechte (unter diesem Thema).

    USE ROLE USERADMIN;
    CREATE ROLE tag_admin;
    USE ROLE ACCOUNTADMIN;
    GRANT CREATE TAG ON SCHEMA mydb.mysch TO ROLE tag_admin;
    GRANT APPLY TAG ON ACCOUNT TO ROLE tag_admin;
    
    Copy
  2. Weisen Sie einem Benutzer, der als Tag-Administrator fungiert, die kundenspezifische Rolle tag_admin zu.

    USE ROLE USERADMIN;
    GRANT ROLE tag_admin TO USER jsmith;
    
    Copy
  3. Führen Sie eine CREATE TAG-Anweisung aus, um ein Tag zu erstellen.

    USE ROLE tag_admin;
    USE SCHEMA mydb.mysch;
    CREATE TAG cost_center;
    
    Copy
  4. Weisen Sie das Tag einem neuen Warehouse zu.

    USE ROLE tag_admin;
    CREATE WAREHOUSE mywarehouse WITH TAG (cost_center = 'sales');
    
    Copy
  5. Weisen Sie das Tag einem bestehenden Warehouse zu.

    USE ROLE tag_admin;
    ALTER WAREHOUSE wh1 SET TAG cost_center = 'sales';
    
    Copy
  6. Weisen Sie das Tag einer Spalte einer bestehenden Tabelle zu.

    ALTER TABLE hr.tables.empl_info
      MODIFY COLUMN job_title
      SET TAG cost_center = 'marketing';
    
    Copy

Ein Tag löschen

Verwenden Sie den Befehl DROP TAG, um ein Tag zu löschen. Wenn Sie den Befehl ausführen, gibt es eine 24-stündige Übergangsfrist, bevor das Tag endgültig gelöscht wird. Während der Übergangsfrist können Sie den Befehl UNDROP TAG ausführen, um das Tag wiederherzustellen. Dabei werden auch alle Tag-Zuordnungen (d. h. Referenzen) zwischen dem Tag und Objekten wiederhergestellt.

Wenn Sie vor dem Löschen feststellen möchten, welche Objekte eineTag haben, fragen Sie die Ansicht TAG_REFERENCES (unter „Kontoverwendung“) ab, um die Tag-Zuweisungen zu ermitteln.

Zugriffssteuerungsrechte

Tag-Berechtigungen

Snowflake unterstützt die folgenden Berechtigungen, um zu bestimmen, ob Benutzer Tags erstellen, festlegen und besitzen können.

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

Berechtigung

Verwendung

CREATE

Ermöglicht das Erstellen eines neuen Tags in einem Schema.

APPLY

Aktiviert die Set- und Unset-Operationen für das Tag auf einem Snowflake-Objekt. Beispiele für die Syntax finden Sie unter: Übersicht der DDL-Befehle, Operationen und Berechtigungen.

OWNERSHIP

Überträgt die Eigentümerschaft eines Tags, was die volle Kontrolle über das Tag gewährt. Erforderlich, um die meisten Eigenschaften eines Tags zu ändern.

Übersicht der DDL-Befehle, Operationen und Berechtigungen

Die folgende Tabelle fasst die Beziehung zwischen Tag-Berechtigungen und DDL-Operationen zusammen.

Operation

Erforderliche Berechtigung

Tag erstellen.

Eine Rolle mit CREATE TAG-Berechtigung in demselben Schema.

Tag erstellen, das weitergegeben wird

Eine Rolle mit den Berechtigungen APPLY TAG ON ACCOUNT und OWNERSHIP auf dem Tag.

Tag ändern.

Die Rolle mit OWNERSHIP-Berechtigung für das Tag.

Tag löschen und wiederherstellen.

Eine Rolle mit OWNERSHIP-Berechtigung für das Tag und USAGE-Berechtigung für die Datenbank und das Schema, in denen sich das Tag befindet.

Tags anzeigen.

Eine der folgenden Möglichkeiten: . Eine Rolle mit der USAGE-Berechtigung für das Schema, in dem die Tags existieren, oder . Eine Rolle mit der Berechtigung APPLY TAG ON ACCOUNT.

Tag einem Objekt zuordnen oder entziehen.

Für einzelne Objekte wird eine Rolle mit der Berechtigung APPLY TAG ON ACCOUNT, oder die Berechtigung APPLY TAG auf das Tag und die OWNERSHIP-Berechtigung auf das Objekt, auf das das Tag gesetzt wird. Siehe Unterstützte Objekte.

Tag einer Spalte zuordnen oder entziehen.

Eine Rolle mit der Berechtigung APPLY TAG ON ACCOUNT oder eine Rolle mit der Berechtigung APPLY für das Tag und der Berechtigung OWNERSHIP für die Tabelle oder Ansicht.

Tags eines Objekts abrufen.

Siehe SYSTEM$GET_TAG, TAG_REFERENCES und TAG_REFERENCES_WITH_LINEAGE.

Ansätze für die Zuweisung von Tagging-Berechtigungen

Dieser Abschnitt beschreibt verschiedene Ansätze für die Zuweisung der Berechtigungen, die zum Erstellen und Setzen von Tags erforderlich sind.

  1. Für eine zentralisierte Tag-Verwaltung, bei der die kundenspezifische Rolle tag_admin Tags für alle Objekte/Spalten erstellt und setzt, sind die folgenden Berechtigungen erforderlich:

    USE ROLE securityadmin;
    GRANT CREATE TAG ON SCHEMA <db_name.schema_name> TO ROLE tag_admin;
    GRANT APPLY TAG ON ACCOUNT TO ROLE tag_admin;
    
    Copy
  2. In einem hybriden Verwaltungsansatz verfügt eine einzelne Rolle über die CREATE TAG-Berechtigung, um die konsistente Benennung der Tags sicherzustellen, und einzelne Teams oder Rollen verfügen über die APPLY-Berechtigung für ein bestimmtes Tag.

    So kann beispielsweise der kundenspezifischen Rolle finance_role die Berechtigung erteilt werden, das Tag cost_center für Tabellen und Ansichten festzulegen, deren Eigentümer die Rolle ist (d. h. die Rolle hat die OWNERSHIP-Berechtigung für die Tabelle oder Ansicht):

    USE ROLE securityadmin;
    GRANT CREATE TAG ON SCHEMA <db_name.schema_name> TO ROLE tag_admin;
    GRANT APPLY ON TAG cost_center TO ROLE finance_role;
    
    Copy