ALTER AGGREGATION POLICY¶
Ersetzt die bestehenden Regeln oder den Kommentar einer Aggregationsrichtlinie. Außerdem können Sie eine Aggregationsrichtlinie umbenennen.
- Siehe auch:
Syntax¶
ALTER AGGREGATION POLICY [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER AGGREGATION POLICY [ IF EXISTS ] <name> SET BODY -> <expression>
ALTER AGGREGATION POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER AGGREGATION POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER AGGREGATION POLICY [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'
ALTER AGGREGATION POLICY [ IF EXISTS ] <name> UNSET COMMENT
Parameter¶
name
Gibt den Bezeichner für die zu ändernde Aggregationsrichtlinie an.
Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.
RENAME TO new_name
Gibt den Bezeichner für die Aggregationsrichtlinie an. Dieser muss für Ihr Schema eindeutig sein. Der neue Bezeichner kann nicht verwendet werden, wenn der Bezeichner bereits für eine andere Aggregationsrichtlinie verwendet wird.
Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
Sie können das Objekt in eine andere Datenbank und/oder in ein anderes Schema verschieben und dabei optional das Objekt umbenennen. Geben Sie dazu einen qualifizierten
new_name
-Wert an, der den neuen Datenbank- und/oder Schemanamen im Formatdb_name.schema_name.object_name
bzw.schema_name.object_name
enthält.Bemerkung
Die Zieldatenbank und/oder das Zielschema müssen bereits vorhanden sein. Außerdem darf in der Zieldatenbank nicht bereits ein gleichnamiges Schema vorhanden sein, da die Anweisung sonst einen Fehler zurückgibt.
Das Verschieben eines Objekts in ein verwaltetes Zugriffsschema ist nicht zulässig, es sei denn, der Objekteigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für das Objekt) ist auch Eigentümer des Zielschemas.
SET ...
Gibt eine oder mehrere Eigenschaften an, die für die Aggregationsrichtlinie festgelegt werden sollen.
BODY -> expression
SQL-Ausdruck, mit dem die Einschränkungen einer Aggregationsrichtlinie festgelegt werden.
Verwenden Sie zum Definieren der Einschränkungen der Aggregationsrichtlinie den SQL-Ausdruck, um eine oder mehrere der folgenden internen Funktionen aufzurufen:
- NO_AGGREGATION_CONSTRAINT
Wenn der Richtlinientext einen Wert für diese Funktion zurückgibt, können Abfragen Daten aus Tabellen oder Ansichten, die eine Aggregationseinschränkung aufweisen, ohne Einschränkung zurückgeben. Der Richtlinientext könnte diese Funktion beispielsweise aufrufen, wenn ein Administrator aus der Tabelle oder Ansicht mit Aggregationseinschränkung Ergebnisse benötigt, die nicht aggregiert sind.
Rufen Sie NO_AGGREGATION_CONSTRAINT ohne Argument auf.
- AGGREGATION_CONSTRAINT
Wenn der Richtlinientext einen Wert aus dieser Funktion zurückgibt, müssen die Abfragen Daten aggregieren, um Ergebnisse zurückgeben zu können. Verwenden Sie das Argument MIN_GROUP_SIZE, um anzugeben, wie viele Datensätze in jeder Aggregationsgruppe enthalten sein müssen.
Die Syntax der AGGREGATION_CONSTRAINT-Funktion lautet:
AGGREGATION_CONSTRAINT ( MIN_GROUP_SIZE => <integer_expression> )
Wobei
integer_expression
die minimale Gruppengröße der Richtlinie darstellt.Es gibt einen Unterschied zwischen der Übergabe von
1
und0
als Argument an die Funktion. In beiden Fällen müssen die Ergebnisse aggregiert werden.Die Übergabe von
1
erfordert auch, dass jede Aggregationsgruppe mindestens einen Datensatz aus der Tabelle mit Aggregationseinschränkung enthält. Bei äußeren Verknüpfungen (Outer Join) muss also mindestens ein Datensatz aus der Tabelle mit Aggregationseinschränkung mit einem Datensatz aus einer ungeschützten Tabelle übereinstimmen.Durch die Übergabe von
0
kann die Abfrage Gruppen zurückgeben, die vollständig aus Datensätzen aus einer anderen Tabelle bestehen. Das bedeutet, dass bei äußeren Joins zwischen einer Tabelle mit Aggregationseinschränkung und einer ungeschützten Tabelle eine Gruppe aus Datensätzen aus der ungeschützten Tabelle bestehen kann, die mit keinem Datensatz in der Tabelle mit Aggregationseinschränkung übereinstimmen.
Der Hauptteil (body) einer Richtlinie kann nicht auf benutzerdefinierte Funktionen, Tabellen oder Ansichten verweisen.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.
Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.
Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.
COMMENT = 'string_literal'
Fügt einen Kommentar hinzu oder überschreibt den vorhandenen Kommentar zur Aggregationsrichtlinie.
Standard: Kein Wert
UNSET ...
Gibt eine oder mehrere Eigenschaften und/oder Parameter an, die für die Aggregationsrichtlinie aufgehoben werden sollen, indem sie auf ihre Standardwerte zurückgesetzt werden:
TAG tag_name [ , tag_name ... ]
COMMENT
Wenn Sie eine Eigenschaft und/oder einen Parameter zurücksetzen, geben Sie nur den Namen an. Die Angabe eines Wertes für die Eigenschaft gibt einen Fehler zurück.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
OWNERSHIP |
Aggregationsrichtlinie |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Weitere Informationen zur DDL und zu Berechtigungen von Aggregationsrichtlinien finden Sie unter Berechtigungen und Befehle.
Nutzungshinweise¶
Wenn Sie eine bestehende Aggregationsrichtlinie aktualisieren möchten und dazu den aktuellen Hauptteil (body) der Richtlinie anzeigen müssen, führen Sie den Befehl DESCRIBE AGGREGATION POLICY aus. Sie können auch die Funktion GET_DDL verwenden, um die vollständige Definition der Aggregationsrichtlinie zu erhalten, einschließlich ihres Hauptteils (body).
Das Verschieben einer Aggregationsrichtlinie in ein verwaltetes Zugriffsschema (unter Verwendung der ALTER AGGREGATION POLICY … RENAME TO-Syntax) ist nicht zulässig, es sei denn, der Eigentümer der Aggregationsrichtlinie (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Aggregationsrichtlinie) ist auch Eigentümer des Zielschemas.
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Ändern Sie den SQL-Ausdruck der Aggregationsrichtlinie so, dass unter allen Umständen eine Mindestgruppengröße von 2 Zeilen erforderlich ist:
ALTER AGGREGATION POLICY my_policy SET BODY -> AGGREGATION_CONSTRAINT(MIN_GROUP_SIZE=>2);
Umbenennen einer Aggregationsrichtlinie:
ALTER AGGREGATION POLICY my_policy RENAME TO agg_policy_table1;