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
                                          }
Copy

Parameter

name

Gibt 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 DISCOVERY

Setzt 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 executionState auf SUSPENDED festgelegt 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 DISCOVERY

Setzt 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 executionState auf RUNNING gesetzt ist.

UPDATE LINKED_CATALOG

Aktualisiert die Eigenschaften, die für katalogverknüpfte Datenbanken gelten. Sie können die folgenden Eigenschaften einstellen:

ADD ( 'namespace1' [ , 'namespace2' ,  ... ] ) TO ALLOWED_NAMESPACES

Gibt 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_NAMESPACES

Gibt einen oder mehrere Namespaces in Ihrem Remote-Katalog an, die aus Ihrer Liste der zulässigen Namespaces entfernt werden sollen.

UNSET ALLOWED_NAMESPACES

Setzt Ihre Liste der zulässigen Namespaces auf den Standardwert zurück, d. h. alle Namespaces sind zulässig.

ADD ( 'namespace1' [ , 'namespace2' ,  ... ] ) TO BLOCKED_NAMESPACES

Gibt 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.ns2 erlaubt ist, aber ns1 blockiert ist, dann wird Snowflake nicht synchronisiert ns1.ns2.

REMOVE ( 'namespace1' [ , 'namespace2' ,  ... ] ) FROM BLOCKED_NAMESPACES

Gibt einen oder mehrere Namespaces in Ihrem Remote-Katalog an, die aus Ihrer Liste der gesperrten Namespaces entfernt werden sollen.

UNSET BLOCKED_NAMESPACES

Setzt Ihre Liste der gesperrten Namespaces auf den Standard zurück, d. h. es werden keine Namespaces blockiert.

SET SYNC_INTERVAL_SECONDS = value

Gibt 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_PREFIX

  • COMMENT

  • CONTACT

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;
Copy

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;
Copy