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>'
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
etorganization_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 surTRUE
.Supprimer
Renvoie une erreur.
Supprimez les comptes spécifiques et réessayez.
Le champ
all_internal_accounts
de l’annonce est défini surTRUE
.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, ouABORT
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 *" $$;
Soumet l’annonce mylisting
à la vérification :
ALTER LISTING mylisting REVIEW;
Modifie l’annonce mylisting
en la publiant :
ALTER LISTING mylisting PUBLISH;
Modifie l’annonce mylisting
en annulant sa publication :
ALTER LISTING mylisting UNPUBLISH;
Modifie l’annonce mylisting
en définissant un nouveau commentaire :
ALTER LISTING mylisting SET COMMENT = 'My listing is ready!';
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;
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$$;
Ajoute des cibles à une annonce v1 externe :
ALTER LISTING mylisting ADD TARGETS $$ targets: accounts: ["Org1.Account1", "Org2.Account2"] $$;
Ajoute des cibles à une annonce v2 externe :
ALTER LISTING mylisting ADD TARGETS $$ external_targets: access: - organization: OrgName2 accounts: [acc1, acc2] $$;
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] $$;
Supprime une cible :
ALTER LISTING mylisting REMOVE TARGETS $$manifest$$;
Supprime les cibles d’une annonce v1 externe :
ALTER LISTING mylisting REMOVE TARGETS $$ targets: accounts: ["Org1.Account1", "Org2.Account2"] $$;
Supprime les cibles d’une annonce v2 externe :
ALTER LISTING mylisting REMOVE TARGETS $$ external_targets: access: - organization: OrgName2 accounts: [acc1, acc2] $$;
Supprime les cibles d’une annonce d’organisation :
ALTER LISTING mylisting REMOVE TARGETS $$ organization_targets: access: - account: account1 $$;