ALTER LISTING

Modifie les propriétés d’un listing avec un manifeste YAML en ligne, ou à partir d’un fichier situé dans un emplacement de zone de préparation.

Voir aussi :

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

Syntaxe

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

Paramètres

name

Spécifie l’identificateur (nom) de l’annonce en cours de modification.

{ PUBLISH | UNPUBLISH | REVIEW }

L’action à effectuer sur le listing :

  • PUBLISH Permet de découvrir une annonce qui ne l’était pas auparavant.

    Le fait de spécifier PUBLISH sur une annonce déjà publiée n’a aucun effet.

  • UNPUBLISH Rend une annonce qui pouvait auparavant être découverte impossible à découvrir par de nouveaux consommateurs. Les consommateurs existants peuvent continuer à accéder aux données associées à une annonce non publiée.

    Le fait de spécifier UNPUBLISH sur une annonce non publiée auparavant n’a aucun effet.

Voir aussi Annuler la publication d’un listing.

  • REVIEW Soumet le listing pour examen.

yaml_manifest_string

Le manifeste YAML pour le listing. Pour les paramètres du manifeste, voir Référence au manifeste d’annonce.

Les manifestes sont normalement fournis sous forme de chaînes encadrées de dollars. Pour plus d’informations, voir Constantes de chaîne encadrées de dollars.

ADD VERSION version_name

Spécifie l’identificateur unique de la version en cours d’ajout. Si l’identificateur contient des espaces, des caractères spéciaux ou des caractères majuscules et minuscules, tout l’identificateur doit être délimité par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse. Pour des informations sur la syntaxe des identificateurs, voir Exigences en matière d’identificateurs.

FROM 'yaml_manifest_stage_location'

Spécifie le chemin d’accès au fichier manifest.yml du clone interne ou du clone du dépôt Git de Snowflake. Si les modifications nécessitent l’examen des opérateurs du marché, utilisez les opérations REVIEW et PUBLISH.

{ ADD | REMOVE } TARGETS manifest

Ajoutez ou supprimez des cibles dans une annonce à l’aide du manifeste contenant uniquement les cibles que vous souhaitez ajouter ou supprimer. Ce manifeste partiel réutilise les structures familières targets, external_targets et organization_targets, qui sont déjà définis dans la spécification du manifeste de l’annonce.

Le tableau ci-dessous énumère les combinaisons manifeste-annonce/manifeste-entrant non prises en charge :

Note

Les annonces v2 sont toujours en prévisualisation. Lors de l’activation de la fonction, toutes les annonces suivantes, qu’elles soient publiques ou privées, seront créées en tant qu’annonces v2.

Version des cibles des annonces externes

Manifeste entrant

Résultat

Solution

Cibles v1

Cibles externes v2

Renvoie une erreur.

Fournir un manifeste entrant version 1.

Cibles v2

Cibles v1

Renvoie une erreur.

Fournir un manifeste entrant version 2.

Toute annonce externe

Cible au niveau de l’organisation qui spécifie une organisation sans comptes.

Renvoie une erreur.

Les cibles au niveau de l’organisation ne sont pas prises en charge pour le moment.

Pour les annonces d’organisation, le tableau ci-dessous énumère les cas d’utilisation non pris en charge pour l’ajout et la suppression de cibles :

Annonce externe

Manifeste entrant

Ajouter ou supprimer

Résultat

Action

N’importe quelle annonce d’organisation

Le champ organization_user_group est défini pour le manifeste.

Les deux

Renvoie une erreur.

Supprimez le champ organization_user_group et réessayez.

Compte ou compte et rôle

Le champ all_internal_accounts du manifeste est défini sur TRUE.

Supprimer

Renvoie une erreur.

Supprimez les comptes spécifiques et réessayez.

Le champ all_internal_accounts de l’annonce est défini sur TRUE.

Le manifeste entrant comprend un compte ou un compte et un rôle.

Supprimer

Renvoie une erreur.

Remplacez all_internal_accounts avec des comptes spécifiques et réessayez.

Aucun rôle n’est spécifié pour le compte.

Le manifeste entrant a un compte avec des rôles.

Supprimer

Renvoie une erreur.

Supprimez d’abord le compte, puis ajoutez des rôles spécifiques.

RENAME TO new_name

Le nom du listing devient new_name. Les noms des listings doivent être uniques. Le nouvel identificateur ne peut pas être utilisé si l’identificateur est déjà utilisé pour un autre listing.

SET ...

Spécifie une ou plusieurs propriétés à définir pour l’annonce (séparées par des espaces, des virgules ou de nouvelles lignes).

COMMENT = 'string_literal'

Ajoute un commentaire ou remplace le commentaire existant d’une annonce existante.

PUBLISH = { TRUE | FALSE }

Spécifie la manière dont l’annonce doit être publiée.

Si cette valeur est définie sur TRUE, l’annonce est publiée immédiatement auprès du service Opérations du Marketplace pour examen.

Par défaut : TRUE.

REVIEW =  { TRUE | FALSE }

Spécifie si l’annonce doit ou non être soumise à l’examen du service Opérations du Marketplace.

Par défaut : TRUE.

Des combinaisons de valeurs différentes pour les propriétés PUBLISH et REVIEW entraînent les comportements suivants :

PUBLISH

REVIEW

Comportement

TRUE

TRUE

Demandez un examen, puis publiez immédiatement après approbation.

TRUE

FALSE

Entraîne une erreur. Vous ne pouvez pas publier d’annonce sur le Snowflake Marketplace sans qu’elle ait été examinée.

FALSE

TRUE

Demandez un examen sans publication automatiquement après l’examen.

FALSE

FALSE

Enregistrez votre annonce sous forme de brouillon sans demander d’examen ni de publication.

Notes sur l’utilisation

  • Les annonces ne peuvent être renommées qu’à l’état DRAFT.

  • Lorsque vous paramétrez la version en direct du manifeste au format YAML pour une annonce, vous devez utiliser COMMIT pour appliquer les modifications, ou ABORT pour annuler les modifications.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Objet

Remarques

OWNERSHIP ou MODIFY

Sur l’annonce en cours de modification.

Si vous utilisez la commande ALTER pour modifier le contenu du manifeste pour l’exécution automatique, vous devez utiliser un rôle disposant des privilèges délégués nécessaires pour configurer l’exécution automatique inter-Cloud. Voir Déléguer des privilèges pour configurer l’exécution automatique.

Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Exemples

Modifie l’annonce mylisting pour utiliser un fichier manifeste mis à jour :

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

Soumet l’annonce mylisting à la vérification :

ALTER LISTING mylisting REVIEW;
Copy

Modifie l’annonce mylisting en la publiant :

ALTER LISTING mylisting PUBLISH;
Copy

Modifie l’annonce mylisting en annulant sa publication :

ALTER LISTING mylisting UNPUBLISH;
Copy

Modifie l’annonce mylisting en définissant un nouveau commentaire :

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

Ajoute une nouvelle version à partir de l’emplacement de la zone de préparation du fichier manifeste YAML spécifié :

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

Modifie une annonce de sorte que les cibles prennent le manifeste entrant et le fusionnent avec les cibles d’annonces existantes :

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

Ajoute des cibles à une annonce v1 externe :

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

Ajoute des cibles à une annonce v2 externe :

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

Lors de l’ajout de cibles, cette opération prend le manifeste entrant et le fusionne avec les organization_targets existantes.

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

Supprime une cible :

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

Supprime les cibles d’une annonce v1 externe :

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

Supprime les cibles d’une annonce v2 externe :

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

Supprime les cibles d’une annonce d’organisation :

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