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;
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;
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;
Aktualisieren Sie ein vorhandenes Tag, um die Weitergabe zu deaktivieren.
ALTER TAG data_sensitivity UNSET PROPAGATE;
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');
+--------------------------------------------------------------+
| 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');
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';
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.
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 Rolletag_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;
CopyWeisen Sie einem Benutzer, der als Tag-Administrator fungiert, die kundenspezifische Rolle
tag_admin
zu.USE ROLE USERADMIN; GRANT ROLE tag_admin TO USER jsmith;
CopyFühren Sie eine CREATE TAG-Anweisung aus, um ein Tag zu erstellen.
USE ROLE tag_admin; USE SCHEMA mydb.mysch; CREATE TAG cost_center;
CopyWeisen Sie das Tag einem neuen Warehouse zu.
USE ROLE tag_admin; CREATE WAREHOUSE mywarehouse WITH TAG (cost_center = 'sales');
CopyWeisen Sie das Tag einem bestehenden Warehouse zu.
USE ROLE tag_admin; ALTER WAREHOUSE wh1 SET TAG cost_center = 'sales';
CopyWeisen 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.
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;
CopyIn 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 Tagcost_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