ALTER LISTING

Ändert die Eigenschaften eines Freigabeangebots mit einem Inline-YAML-Manifest oder aus einer Datei, die sich an einem Stagingbereich-Standort befindet.

Siehe auch:

CREATE LISTING, DESCRIBE LISTING, SHOW LISTINGS, SHOW VERSIONS IN LISTING, DROP LISTING

Syntax

ALTER LISTING [ IF EXISTS ] <name> [ { PUBLISH | UNPUBLISH | REVIEW } ]

ALTER LISTING [ IF EXISTS ] <name> AS '<yaml_manifest_string>'
  [ PUBLISH = { TRUE | FALSE } ]
  [ REVIEW = { TRUE | FALSE } ]
  [ COMMENT = '<string>' ]

ALTER LISTING <name> ADD VERSION [ [ IF NOT EXISTS ] <version_name> ]
  FROM <yaml_manifest_stage_location>
  [ COMMENT = '<string>' ]

ALTER LISTING [ IF EXISTS ] <name> { ADD | REMOVE } TARGETS <manifest>

ALTER LISTING [ IF EXISTS ] <name> RENAME TO <new_name>;

ALTER LISTING [ IF EXISTS ] <name> SET COMMENT = '<string>'
Copy

Parameter

name

Gibt den Bezeichner (Namen) für das zu ändernde Freigabeangebot an.

{ PUBLISH | UNPUBLISH | REVIEW }

Die Aktion, die für das Freigabeangebot durchgeführt werden soll:

  • PUBLISH Macht ein zuvor nicht auffindbares Freigabeangebot auffindbar.

    Die Angabe von PUBLISH bei einem bereits veröffentlichten Angebot hat keine Auswirkungen.

  • UNPUBLISH Macht einen zuvor auffindbares Freigabeangebot für neue Verbraucher unauffindbar. Bestehende Verbraucher können weiterhin auf die Daten zugreifen, die mit einem unveröffentlichten Angebot verbunden sind.

    Die Angabe von UNPUBLISH bei einem zuvor unveröffentlichten Angebot hat keine Auswirkungen.

Siehe auch Freigabeangebot zurückziehen.

  • REVIEW Reicht das Freigabeangebot zur Überprüfung ein.

yaml_manifest_string

Das YAML-Manifest für das Freigabeangebot. Die Parameter für das Manifest finden Sie unter Referenz zum Freigabeangebots-Manifest.

Manifeste werden normalerweise als in Dollarzeichen eingeschlossene Zeichenfolgen bereitgestellt. Weitere Informationen dazu finden Sie unter Zeichenfolgenkonstanten in Dollarzeichen.

ADD VERSION version_name

Gibt den eindeutigen Bezeichner der Version an, die hinzugefügt wird. Wenn der Bezeichner Leerzeichen, Sonderzeichen oder Zeichen in Groß-/Kleinschreibung enthält, muss der gesamte Bezeichner in doppelte Anführungszeichen eingeschlossen werden. Bei Bezeichnern, die in doppelten Anführungszeichen eingeschlossen sind, wird ebenfalls zwischen Groß- und Kleinschreibung unterschieden. Informationen zur Syntax der Bezeichner finden Sie unter Anforderungen an Bezeichner.

FROM 'yaml_manifest_stage_location'

Gibt den Pfad für die manifest.yml-Datei des internen oder Snowflake-Git-Repository-Klons an. Wenn die Änderungen eine Überprüfung durch Marketplace Ops erfordern, verwenden Sie die Operationen REVIEW und PUBLISH.

{ ADD | REMOVE } TARGETS manifest

Sie können einem Freigabeangebot Ziele hinzufügen oder Ziele aus einem Angebot entfernen, indem Sie das Manifest verwenden, das nur die Ziele enthält, die Sie hinzufügen oder entfernen möchten. Dieses Teilmanifest verwendet die bekannten Strukturen wieder – Ziele, externe_Ziele`und `Organisationsziele, die bereits in der Spezifikation des Freigabeangebots definiert sind.

In der folgenden Tabelle finden Sie eine Auflistung der nicht unterstützten Kombinationen von Freigabeangebot und Manifest:

Bemerkung

V2-Freigabeangebote befinden sich noch in der Vorschau. Nach Aktivierung des Features werden alle nachfolgenden Datenlisten, ob öffentlich oder privat, als v2-Datenlisten erstellt.

Zielversion des externen Freigabeangebots

Eingehendes Manifest

Ergebnis

Problemumgehung

V1-Ziele

Externe V2-Ziele

Gibt einen Fehler zurück.

Stellen Sie ein eingehendes Manifest der Version 1 bereit.

V2-Ziele

V1-Ziele

Gibt einen Fehler zurück.

Stellen Sie ein eingehendes Manifest der Version 2 bereit.

Beliebige externe Freigabeangebote

Ziel auf Organisationsebene, das eine Organisation ohne Konten angibt.

Gibt einen Fehler zurück.

Ziele auf Organisationsebene werden derzeit nicht unterstützt.

Für Organisations-Freigabeangebote sind in der folgenden Tabelle nicht unterstützte Anwendungsfälle für das Hinzufügen und Entfernen von Zielen aufgeführt:

Externes Freigabeangebot

Eingehendes Manifest

Hinzufügen/Entfernen

Ergebnis

Aktion

Beliebige Organisations-Freigabeangebote

Manifest hat das Feld Organisationsbenutzergruppe aktiviert.

Beide

Gibt einen Fehler zurück.

Entfernen Sie das Feld Organisationsbenutzergruppe und versuchen Sie es erneut.

Konto oder Konto und Rolle

Manifest hat das Feld Alle_internen_Konten auf TRUE gesetzt.

Entfernen

Gibt einen Fehler zurück.

Entfernen Sie bestimmte Konten, und versuchen Sie es erneut.

Das Freigabeangebot hat das Feld Alle_internen_Konten auf TRUE gesetzt.

Das eingehende Manifest enthält ein Konto oder ein Konto und eine Rolle.

Entfernen

Gibt einen Fehler zurück.

Ersetzen Sie Alle_internen_Konten durch bestimmte Konten und versuchen Sie es erneut.

Für das Konto sind keine Rollen angegeben

Eingehendes Manifest hat ein Konto mit Rollen.

Entfernen

Gibt einen Fehler zurück.

Entfernen Sie zuerst das Konto, und fügen Sie dann bestimmte Rollen hinzu.

RENAME TO new_name

Ändert den Namen des Freigabeangebots in new_name. Die Namen von Freigabeangeboten müssen eindeutig sein. Der neue Bezeichner kann nicht verwendet werden, wenn der Bezeichner bereits für ein anderes Freigabeangebot verwendet wird.

SET ...

Gibt eine (oder mehrere) Eigenschaften an, die für das Freigabeangebot festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen):

COMMENT = 'string_literal'

Fügt einen Kommentar hinzu oder überschreibt den vorhandenen Kommentar zu einem vorhandenen Freigabeangebot.

PUBLISH = { TRUE | FALSE }

Gibt an, wie das Freigabeangebot veröffentlicht werden soll.

Bei TRUE, wird das Angebot sofort bei der Veröffentlichung an Marketplace Ops zur Überprüfung weitergeleitet.

Standard: TRUE.

REVIEW =  { TRUE | FALSE }

Gibt an, ob das Freigabeangebot zur Überprüfung an Marketplace Ops weitergeleitet werden soll oder nicht.

Standard: TRUE.

Verschiedene Kombinationen von Werten für die Eigenschaften PUBLISH und REVIEW führen zu den folgenden Verhaltensweisen:

PUBLISH

REVIEW

Verhalten

TRUE

TRUE

Anfordern einer Überprüfung und direkte Veröffentlichung nach der Genehmigung.

TRUE

FALSE

Führt zu einem Fehler. Sie können kein Angebot auf Snowflake Marketplace ohne Überprüfung veröffentlichen.

FALSE

TRUE

Anfordern einer Überprüfung, ohne dass danach automatisch die Veröffentlichung erfolgt.

FALSE

FALSE

Speichern des Freigabeangebots als Entwurf, ohne eine Überprüfung oder Veröffentlichung anzufordern.

Nutzungshinweise

  • Freigabeangebote können nur im Zustand DRAFT umbenannt werden.

  • Wenn Sie die Live-Version des Manifests im Format YAML für ein Freigabeangebot einstellen, müssen Sie COMMIT verwenden, um die Änderungen zu übernehmen, oder ABORT, um die Änderungen zu verwerfen.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

OWNERSHIP oder MODIFY

Für das zu ändernde Freigabeangebot.

Wenn Sie den Befehl ALTER verwenden, um den Inhalt des Manifests für die automatische Ausführung zu ändern, müssen Sie eine Rolle mit den delegierten Berechtigungen verwenden, die für die Konfiguration der Cloud-übergreifenden automatischen Ausführung erforderlich sind. Siehe Delegieren Sie Berechtigungen, um die automatische Ausführung einzurichten.

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

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

Ändert das Freigabeangebot mylisting, um eine aktualisierte Manifestdatei zu verwenden:

ALTER LISTING mylisting
AS
$$
title: "MyListing"
subtitle: "Subtitle for MyListing"
description: "Description or MyListing"
listing_terms:
  type: "STANDARD"
targets:
  accounts: ["Org1.Account1"]
usage_examples:
  - title: "this is a test sql"
    description: "Simple example"
    query: "select *"
$$;
Copy

Übermittelt das Freigabeangebot mylisting zur Überprüfung:

ALTER LISTING mylisting REVIEW;
Copy

Ändert das Freigabeangebot mylisting, indem es veröffentlicht wird:

ALTER LISTING mylisting PUBLISH;
Copy

Ändert das Freigabeangebot mylisting, indem die Veröffentlichung aufgehoben wird:

ALTER LISTING mylisting UNPUBLISH;
Copy

Ändert das Freigabeangebot mylisting, indem ein neuer Kommentar eingegeben wird:

ALTER LISTING mylisting SET COMMENT = 'My listing is ready!';
Copy

Fügt eine neue Version aus dem Stagingbereich-Standort der angegebenen YAML-Manifestdatei hinzu:

ALTER LISTING mylisting ADD VERSION V3 FROM @dbforstage.public.listingstage/listingmanifests;
Copy

Ändert ein Freigabeangebot so, dass die Ziele das eingehende Manifest mit den bestehenden Zielen des Freigabeangebots zusammenführen:

ALTER LISTING mylisting ADD TARGETS $$manifest$$;
Copy

Fügt Ziele zu einem externen V1-Freigabeangebot hinzu:

ALTER LISTING mylisting ADD TARGETS
$$
targets:
  accounts: ["Org1.Account1", "Org2.Account2"]
$$;
Copy

Fügt Ziele zu einem externen V2-Freigabeangebot hinzu:

ALTER LISTING mylisting ADD TARGETS
$$
external_targets:
  access:
    - organization: OrgName2
      accounts: [acc1, acc2]
$$;
Copy

Beim Hinzufügen von Zielen wird hierdurch das eingehende Manifest mit den bestehenden organization_targets zusammengeführt.

ALTER LISTING mylisting ADD TARGETS
$$
organization_targets:
  access:
    - account: account2
      roles: [role1, role2]
$$;
Copy

Entfernt ein Ziel:

ALTER LISTING mylisting REMOVE TARGETS $$manifest$$;
Copy

Entfernt Ziele aus einem externen V1-Freigabeangebot:

ALTER LISTING mylisting REMOVE TARGETS
$$
targets:
  accounts: ["Org1.Account1", "Org2.Account2"]
$$;
Copy

Entfernt Ziele aus einem externen V2-Freigabeangebot:

ALTER LISTING mylisting REMOVE TARGETS
$$
external_targets:
  access:
    - organization: OrgName2
      accounts: [acc1, acc2]
$$;
Copy

Entfernt Ziele aus einem Organisations-Freigabeangebot:

ALTER LISTING mylisting REMOVE TARGETS
$$
organization_targets:
  access:
    - account: account1
$$;
Copy