ALTER DATABASE (katalogverknüpft)¶
Ändert die Eigenschaften für eine bestehende katalogverknüpfte Datenbank.
Datenbankänderungen umfassenden die folgenden Aktionen:
Aktivieren oder Deaktivieren der automatischen Erkennung.
Ändern der zulässigen und gesperrten Namespaces.
Ändern des Zeitintervalls (in Sekunden), das Snowflake für die automatische Erkennung von Schemas und Tabellen in Ihrem Remote-Katalog verwenden soll.
Ändern, ob Ihr Remote-Katalog schreibgeschützt oder beschreibbar ist.
Syntax¶
ALTER DATABASE [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER DATABASE [ IF EXISTS ] <name> SUSPEND DISCOVERY
ALTER DATABASE [ IF EXISTS ] <name> RESUME DISCOVERY
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
ADD ( '<namespace>' [ , ... ] ) TO ALLOWED_NAMESPACES
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
REMOVE ( '<namespace>' [ , ... ] ) FROM ALLOWED_NAMESPACES
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
UNSET ALLOWED_NAMESPACES
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
ADD ( '<namespace>' [ , ... ] ) TO BLOCKED_NAMESPACES
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
REMOVE ( '<namespace>' [ , ... ] ) FROM BLOCKED_NAMESPACES
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
UNSET BLOCKED_NAMESPACES
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
SET SYNC_INTERVAL_SECONDS = <value>
ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
SET ALLOWED_WRITE_OPERATIONS = { NONE | ALL }
ALTER DATABASE [ IF EXISTS ] <name> SET [ BASE_LOCATION_PREFIX = '<string>' ]
[ COMMENT = '<string_literal>' ]
[ CONTACT <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ] ]
ALTER DATABASE [ IF EXISTS ] <name> UNSET { BASE_LOCATION_PREFIX |
COMMENT |
CONTACT
}
Parameter¶
nameGibt den Bezeichner für die zu ändernde katalogverknüpfte Datenbank 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Ändert den Namen der katalogverknüpften Datenbank in
new_name. Der neue Bezeichner muss in dem Schema eindeutig sein.Weitere Informationen 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.
SUSPEND DISCOVERYSetzt die automatische Erkennung aus. Sie können die automatische Erkennung aussetzen, um den Verbrauch von unnötigen Credits oder Ressourcen zu vermeiden, wenn ein zugrunde liegendes Problem verhindert, dass Snowflake die Tabellen in Ihrem Remote-Katalog erkennt. Sie können z. B. die automatische Erkennung aussetzen, weil ein zugrunde liegendes Problem mit fehlenden Berechtigungen oder eine Fehlkonfiguration vorliegt. Nachdem Sie das Problem behoben haben, führen Sie ALTER DATABASE … RESUME DISCOVERY aus, um die Erkennung fortzusetzen.
Um zu bestätigen, dass die automatische Erkennung ausgesetzt ist, rufen Sie die SYSTEM$CATALOG_LINK_STATUS-Funktion auf und überprüfen Sie, ob das Feld
executionStateaufSUSPENDEDfestgelegt ist. Wenn Sie die automatische Erkennung aussetzen, aber gerade eine automatische Erkennungsaufgabe ausgeführt wird, wird der Ausführungsstatus erst dann in „Ausgesetzt“ geändert, wenn die Aufgabe abgeschlossen ist.Bemerkung
Das Aussetzen der automatischen Erkennung deaktiviert die automatische Aktualisierung. Weitere Informationen zum Deaktivieren der automatischen Aktualisierung für eine bestehende Iceberg-Tabelle finden Sie unter Automatische Aktualisierung aktivieren oder deaktivieren.
RESUME DISCOVERYSetzt die automatische Erkennung fort. Es kann sein, dass Sie die Erkennung aus folgenden Gründen fortsetzen möchten:
Sie haben die Erkennung ausgesetzt, um ein Problem zu beheben, und nun sind Sie bereit, die Erkennung fortzusetzen.
Sie möchten eine sofortige Ausführung der Erkennung erzwingen, um sicherzustellen, dass die jüngsten Änderungen, wie z. B. korrigierte Berechtigungen, übernommen werden.
Um zu bestätigen, dass die automatische Erkennung fortgesetzt wird, rufen Sie die SYSTEM$CATALOG_LINK_STATUS-Funktion auf und überprüfen Sie dann, ob der
executionStateaufRUNNINGgesetzt ist.UPDATE LINKED_CATALOGAktualisiert die Eigenschaften, die für katalogverknüpfte Datenbanken gelten. Sie können die folgenden Eigenschaften einstellen:
ADD ( 'namespace1' [ , 'namespace2' , ... ] ) TO ALLOWED_NAMESPACESGibt einen oder mehrere Namespaces in Ihrem Remote-Katalog an, um den Bereich der automatischen Erkennung einzuschränken. Snowflake synchronisiert die angegebenen Namespaces und alle Namespaces und Tabellen, die darunter verschachtelt sind.
Wenn Sie eine katalogverknüpfte Datenbank mit einer leeren ALLOWED_NAMESPACES-Liste erstellt haben, synchronisiert Snowflake alle Namespaces und Tabellen aus dem Remote-Katalog.
Wenn Sie später die Datenbank ändern, indem Sie angeben, dass der ALLOWED_NAMESPACES-Parameter nur eine bestimmte Liste von Namespaces zulässt, aktualisiert Snowflake die katalogverknüpfte Datenbank, um nur die von Ihnen zugelassenen Namespaces beizubehalten. Alle anderen Namespaces und Tabellen werden aus der katalogverknüpften Datenbank gelöscht.
Wenn Sie eine katalogverknüpfte Datenbank mit einer Liste von ALLOWED_NAMESPACES erstellt haben, erstellt Snowflake nur die zulässigen Namespaces in der katalogverknüpften Datenbank.
Wenn Sie später die Datenbank ändern, um Namespaces zur ALLOWED_NAMESPACES-Liste hinzuzufügen, erstellt Snowflake nur die neu hinzugefügten Namespaces und behält die vorhandenen zulässigen Namespaces bei. Wenn Sie Namespaces aus der ALLOWED_NAMESPACES-Liste entfernen, löscht Snowflake nur die neu entfernten Namespaces aus der katalogverknüpften Datenbank und behält alle verbleibenden zulässigen Namespaces bei.
Wenn ein verschachtelter Namespace in der ALLOWED_NAMESPACES Liste enthalten ist, Sie jedoch den NAMESPACE_MODE-Parameter auf IGNORE_NESTED_NAMESPACE setzen, synchronisiert Snowflake weder den verschachtelten Namespace noch die darunter liegenden Schemata und Tabellen.
REMOVE ( 'namespace1' [ , 'namespace2' , ... ] ) FROM ALLOWED_NAMESPACESGibt einen oder mehrere Namespaces in Ihrem Remote-Katalog an, die aus Ihrer Liste der zulässigen Namespaces entfernt werden sollen.
UNSET ALLOWED_NAMESPACESSetzt Ihre Liste der zulässigen Namespaces auf den Standardwert zurück, d. h. alle Namespaces sind zulässig.
ADD ( 'namespace1' [ , 'namespace2' , ... ] ) TO BLOCKED_NAMESPACESGibt einen oder mehrere Namespaces in Ihrem Remote-Katalog an, die für die automatische Erkennung gesperrt werden sollen.
Snowflake blockiert die angegebenen Namespaces und alle Namespaces und Tabellen, die darunter verschachtelt sind.
Wenn Sie sowohl ALLOWED_NAMESPACES als auch BLOCKED_NAMESPACES angeben, dann hat dieBLOCKED_NAMESPACES-Liste Vorrang. Beispiel: Wenn
ns1.ns2erlaubt ist, aberns1blockiert ist, dann wird Snowflake nicht synchronisiertns1.ns2.REMOVE ( 'namespace1' [ , 'namespace2' , ... ] ) FROM BLOCKED_NAMESPACESGibt einen oder mehrere Namespaces in Ihrem Remote-Katalog an, die aus Ihrer Liste der gesperrten Namespaces entfernt werden sollen.
UNSET BLOCKED_NAMESPACESSetzt Ihre Liste der gesperrten Namespaces auf den Standard zurück, d. h. es werden keine Namespaces blockiert.
SET SYNC_INTERVAL_SECONDS = valueGibt das Zeitintervall (in Sekunden) an, das Snowflake für die automatische Erkennung von Schemas und Tabellen in Ihrem Remote-Katalog verwenden soll. Sie können Ihren Credit-Verbrauch reduzieren, indem Sie ein längeres Zeitintervall einstellen.
Werte: 30 bis 86.400 (1 Tag), einschließlich
Standard: 30 Sekunden.
SET ALLOWED_WRITE_OPERATIONS = { NONE | ALL }Gibt an, ob Ihre katalogverknüpfte Datenbank schreibgeschützt oder beschreibbar ist.
NONE: Ihre katalogverknüpfte Datenbank ist schreibgeschützt.Wenn Ihre katalogverknüpfte Datenbank schreibgeschützt ist, schlägt jede Operation, die Sie ausführen und die eine Übergabe an den Katalog erfordert, fehl. Beispiel: DROP ICEBERG TABLE.
ALL: Ihre katalogverknüpfte Datenbank ist beschreibbar.Warnung
Wenn in Ihrer katalogverknüpften Datenbank Schreibberechtigungen aktiviert sind, gibt Snowflake das Löschen von Tabellen an den Remote-Katalog weiter, wodurch die Tabelle und die Daten aus beiden Systemen entfernt werden.
Standard:
ALL
SET ...Gibt eine oder mehrere Eigenschaften oder Parameter an, die für die katalogverknüpfte Datenbank festgelegt werden sollen, getrennt durch Leerzeichen, Kommas oder neue Zeilen:
BASE_LOCATION_PREFIX = 'string'Gibt ein Präfix an, das Snowflake im Schreibpfad für extern verwaltete Apache Iceberg™-Tabellen verwenden soll. Weitere Informationen dazu finden Sie unter Daten- und Metadatenverzeichnisse für Iceberg-Tabellen und BASE_LOCATION_PREFIX.
Standard: Kein Wert
COMMENT = 'string_literal'Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für die katalogverknüpfte Datenbank.
CONTACT purpose = contact [ , purpose = contact ... ]Verknüpfen Sie das vorhandene Objekt mit einem oder mehreren Kontakten.
Sie können nicht CONTACT-Eigenschaft mit anderen Eigenschaften in derselben Anweisung einstellen.
UNSET ...Gibt eine (oder mehrere) Eigenschaften oder Parameter an, die für die Datenbank gelöscht werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden:
BASE_LOCATION_PREFIXCOMMENTCONTACT
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
|---|---|---|
OWNERSHIP |
Die mit dem Katalog verknüpfte Datenbank, die geändert wird. |
Erforderlich, um die automatische Tabellenerkennung auszusetzen oder fortzusetzen. |
OWNERSHIP oder MODIFY |
Die mit dem Katalog verknüpfte Datenbank, die geändert wird. |
Für alle anderen Operationen erforderlich. |
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.
Beispiele¶
Zurücksetzen der Liste der zulässigen Namespaces für eine katalogverknüpfte Datenbank namens my_linked_db auf den Standard.
ALTER DATABASE IF EXISTS my_linked_db UPDATE LINKED_CATALOG
UNSET ALLOWED_NAMESPACES;
Hinzufügen von my_namespace zur Liste der zulässigen Namespaces für eine katalogverknüpfte Datenbank namens my_linked_db.
ALTER DATABASE IF EXISTS my_linked_db UPDATE LINKED_CATALOG
ADD ('my_namespace') TO ALLOWED_NAMESPACES;