ALTER SCHEMA

Ändert die Eigenschaften eines vorhandenen Schemas, einschließlich der Umbenennung des Schemas oder des Austausches mit einem anderen Schema und der Änderung der Datenaufbewahrungsfrist für Time Travel (wenn Sie Snowflake Enterprise Edition oder höher verwenden).

Siehe auch:

CREATE SCHEMA, DESCRIBE SCHEMA, DROP SCHEMA, SHOW SCHEMAS, UNDROP SCHEMA

Syntax

ALTER SCHEMA [ IF EXISTS ] <name> RENAME TO <new_schema_name>

ALTER SCHEMA [ IF EXISTS ] <name> SWAP WITH <target_schema_name>

ALTER SCHEMA [ IF EXISTS ] <name> SET {
                                      [ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
                                      [ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
                                      [ EXTERNAL_VOLUME = <external_volume_name> ]
                                      [ CATALOG = <catalog_integration_name> ]
                                      [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
                                      [ LOG_LEVEL = '<log_level>' ]
                                      [ TRACE_LEVEL = '<trace_level>' ]
                                      [ COMMENT = '<string_literal>' ]
                                      }

ALTER SCHEMA [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER SCHEMA [ IF EXISTS ] <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER SCHEMA [ IF EXISTS ] <name> UNSET {
                                        DATA_RETENTION_TIME_IN_DAYS         |
                                        MAX_DATA_EXTENSION_TIME_IN_DAYS     |
                                        EXTERNAL_VOLUME                     |
                                        CATALOG                             |
                                        DEFAULT_DDL_COLLATION               |
                                        LOG_LEVEL                           |
                                        TRACE_LEVEL                         |
                                        COMMENT
                                        }
                                        [ , ... ]

ALTER SCHEMA [ IF EXISTS ] <name> { ENABLE | DISABLE } MANAGED ACCESS
Copy

Parameter

name

Gibt den Bezeichner für das zu ändernde Schema an. Wenn der Bezeichner Leerzeichen, Sonderzeichen oder gemischte Zeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen eingeschlossen werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

RENAME TO new_schema_name

Gibt den neuen Bezeichner für das Schema an. Dieser muss für die Datenbank eindeutig sein.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Sie können das Objekt in eine andere Datenbank verschieben und dabei optional das Schema umbenennen. Geben Sie dazu einen qualifizierten new_schema_name-Wert an, der den neuen Datenbanknamen im Format db_name.new_schema_name enthält.

Bemerkung

Die Zieldatenbank muss bereits vorhanden sein. Außerdem darf am neuen Speicherort nicht bereits ein gleichnamiges Schema vorhanden sein, da die Anweisung sonst einen Fehler zurückgibt.

Wenn ein Objekt umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.

SWAP WITH target_schema_name

Tauscht alle Objekte (Tabellen, Ansichten usw.) und Metadaten, einschließlich Bezeichner, zwischen den beiden angegebenen Schemas aus. Tauscht auch alle Zugriffssteuerungsrechte aus, die für die Schemata und Objekte, die sie enthalten, vergeben wurden. SWAP WITH führt im Wesentlichen eine Umbenennung beider Schemata als eine einzige Operation durch.

SET ...

Gibt eine (oder mehrere) Eigenschaften an, die für das Schema festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder neue Zeilen):

DATA_RETENTION_TIME_IN_DAYS = integer

Gibt die Anzahl der Tage an, für die Time Travel-Aktionen (CLONE und UNDROP) auf dem Schema ausgeführt werden können, sowie die standardmäßige Time Travel-Aufbewahrungsdauer für alle im Schema erstellten Tabellen.

Der Wert, den Sie angeben können, hängt von der verwendeten Snowflake-Edition ab:

  • Standardausführung: 0 oder 1

  • Enterprise Edition (oder höher): 0 bis 90

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

Objektparameter, der die maximale Anzahl von Tagen angibt, für die Snowflake die Datenaufbewahrungsfrist für Tabellen im Schema verlängern kann, um zu verhindern, dass Streams auf den Tabellen veraltet sind.

Eine detaillierte Beschreibung dieses Parameters finden Sie unter MAX_DATA_EXTENSION_TIME_IN_DAYS.

EXTERNAL_VOLUME = external_volume_name

Objektparameter, der das externe Standardvolume angibt, das für Iceberg-Tabellen verwendet werden soll.

Weitere Informationen zu diesem Parameter finden Sie unter EXTERNAL_VOLUME.

CATALOG = catalog_integration_name

Objektparameter, der die Standard-Katalogintegration angibt, die für Iceberg-Tabellen verwendet werden soll.

Weitere Informationen zu diesem Parameter finden Sie unter CATALOG.

DEFAULT_DDL_COLLATION = 'collation_specification'

Gibt eine standardmäßige Sortierungsspezifikation für Folgendes an:

  • Alle neuen Spalten, die zu vorhandenen Tabellen im Schema hinzugefügt wurden.

  • Alle Spalten in neuen Tabellen, die dem Schema hinzugefügt wurden.

Durch das Festlegen des Parameters ändert sich nicht die Sortierungsspezifikation für vorhandene Spalten.

Weitere Informationen zu diesem Parameter finden Sie unter DEFAULT_DDL_COLLATION.

LOG_LEVEL = 'log_level'

Gibt den Schweregrad von Meldungen an, die in die aktive Ereignistabelle erfasst und zur Verfügung gestellt werden sollen. Meldungen des angegebenen Schweregrads (und mit höherem Schweregrad) werden erfasst.

Weitere Informationen zu Protokolliergraden finden Sie unter LOG_LEVEL. Weitere Informationen zum Festlegen des Protokolliergrads finden Sie unter Einstellen des Protokolliergrads.

TRACE_LEVEL = 'trace_level'

Steuert, wie Ablaufverfolgungsereignisse in der Ereignistabelle erfasst werden.

Weitere Informationen zu Protokolliergraden finden Sie unter TRACE_LEVEL. Weitere Informationen zum Festlegen der Ablaufverfolgungsebene finden Sie unter Einstellen des Protokolliergrads (Ablaufverfolgungsebene).

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 einen vorhandenen Kommentar zum Schema.

UNSET ...

Gibt eine (oder mehrere) Eigenschaften und/oder Parameter an, die für die Datenbank gelöscht werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden:

  • DATA_RETENTION_TIME_IN_DAYS

  • MAX_DATA_EXTENSION_TIME_IN_DAYS

  • EXTERNAL_VOLUME

  • CATALOG

  • DEFAULT_DDL_COLLATION

  • TAG tag_name [ , tag_name ... ]

  • COMMENT

Sie können mehrere Eigenschaften/Parameter mit einer einzigen ALTER-Anweisung zurücksetzen; jedoch müssen einzelne Eigenschaften/Parameter durch ein Komma getrennt werden. 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.

ENABLE | DISABLE MANAGED ACCESS

Aktivieren Sie den verwalteten Zugriff für ein Schema, oder deaktivieren Sie das Konvertieren eines verwalteten Zugriffsschemas in ein reguläres Schema. Verwaltete Zugriffsschemas zentralisieren die Verwaltung von Berechtigungen für den Schemaeigentümer.

In regulären Schemas kann der Eigentümer eines Objekts (d. h. die Rolle, die über die Berechtigung OWNERSHIP für das Objekt verfügt) anderen Rollen Berechtigungen für seine Objekte erteilen. In verwalteten Zugriffsschemas verwaltet der Schemaeigentümer alle Berechtigungen, einschließlich zukünftiger Zuweisungen, für Objekte im Schema. Objekteigentümer behalten die OWNERSHIP-Berechtigung für die Objekte. Berechtigungszuweisungen für die Objekte können jedoch nur vom Schemaeigentümer verwaltet werden.

Nutzungshinweise

  • Um ein Schema umzubenennen, muss die Rolle, mit der die Operation durchgeführt wird, für das Schema die Berechtigung CREATE SCHEMA in der Datenbank und OWNERSHIP-Berechtigungen haben.

  • Um zwei Schemas auszutauschen, muss die Rolle, mit der die Operation durchgeführt wird, OWNERSHIP-Berechtigungen für beide Schemas haben.

  • So konvertieren Sie ein reguläres Schema in ein verwaltetes Zugriffsschema:

    • Der Schemaeigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Aufgabe) muss auch die globale Berechtigung MANAGE GRANTS besitzen. Die Berechtigung MANAGE GRANTS ist erforderlich, da eine andere Rolle mit dieser Berechtigung möglicherweise zukünftige Berechtigungen für Objekte eines bestimmten Typs im Schema definiert hat. Nachdem ein reguläres Schema zu einem verwalteten Zugriffsschema geworden ist, kann der Schemaeigentümer die zukünftigen Berechtigungen widerrufen, ohne verstehen zu müssen, warum diese von einer Rolle mit der Berechtigung MANAGE GRANTS erteilt wurden.

    • Alle offenen zukünftigen Zuweisungen müssen mit REVOKE <Berechtigungen> und dem Schlüsselwort FUTURE widerrufen werden.

    Nachdem ein reguläres Schema in ein verwaltetes Zugriffsschema konvertiert wurde, bleiben alle zuvor für einzelne Objekte erteilten Berechtigungen erhalten. Die Objekteigentümer können jedoch keine weiteren Berechtigungen für diese Objekte erteilen.

  • Um ein verwaltetes Zugriffsschema in ein reguläres Schema zu konvertieren, muss der Schemaeigentümer auch die globale Berechtigung MANAGE GRANTS haben, allerdings nur dann, wenn für das aktuelle Schema zukünftige Berechtigungen definiert sind.

  • 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

Schema schema1 in schema2 umbenennen:

ALTER SCHEMA IF EXISTS schema1 RENAME TO schema2;
Copy

Konvertieren eines regulären Schemas in ein verwaltetes Zugriffsschema:

ALTER SCHEMA schema2 ENABLE MANAGED ACCESS;
Copy