Kategorien:

DDL für Datenbanken, Schemas und Freigaben

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, SHOW SCHEMAS

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 = <num> ]
                                      [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
                                      [ COMMENT = '<string_literal>' ]
                                      }

ALTER SCHEMA [ IF EXISTS ] <name> UNSET {
                                        DATA_RETENTION_TIME_IN_DAYS |
                                        DEFAULT_DDL_COLLATION       |
                                        COMMENT
                                        }
                                        [ , ... ]

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

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ß- und Kleinschreibung zu beachten.

RENAME TO neuer_Schemaname

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.

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

SWAP WITH Name_des_Zielschemas

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 = Zahl

Gibt die Anzahl der Tage an, für die Time Travel-Aktionen (CLONE und UNDROP) am 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

DEFAULT_DDL_COLLATION = 'Sortierungsspezifikation'

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.

COMMENT = 'Zeichenfolgenliteral'

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

  • DEFAULT_DDL_COLLATION

  • 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/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 MANAGED 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> … FROM ROLE 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.

Beispiele

Schema schema1 in schema2 umbenennen:

ALTER SCHEMA IF EXISTS schema1 RENAME TO schema2;

Konvertieren eines regulären Schemas in ein verwaltetes Zugriffsschema:

ALTER SCHEMA schema2 ENABLE MANAGED ACCESS;