ALTER LISTING¶
インライン YAML マニフェストで、またはステージの場所にあるファイルから :doc:`リスト </collaboration/collaboration-listings-about>`のプロパティを変更します。
- こちらもご参照ください。
- CREATE LISTING、 DESCRIBE LISTING、 SHOW LISTINGS、 SHOW VERSIONS IN LISTING、 DROP LISTING 
構文¶
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>'
パラメーター¶
- name
- 変更されるリストの識別子(名前)を指定します。 
- { PUBLISH | UNPUBLISH | REVIEW }
- リストに対して実行するアクション: - PUBLISH以前は発見不可能だったリストを発見可能にします。- 以前に公開されたリストに PUBLISH を指定しても効果はありません。 
- UNPUBLISH以前は発見可能だったリストが、新しいコンシューマーには発見不可能になります。既存のコンシューマーは、未公開リストに関連するデータに引き続きアクセスすることができます。- 以前に公開されていないリストに UNPUBLISH を指定しても効果はありません。 
 - リストを非公開にする もご参照ください。 - REVIEWはレビューのためにリストを提出します。
 
- yaml_manifest_string
- リストの YAML マニフェスト。マニフェストのパラメーターについては、 リストマニフェスト参照 をご参照ください。 - マニフェストは通常、ドル引用符で囲まれた文字列として提供されます。詳細については、 ドル記号付き文字列定数 をご参照ください。 
- ADD VERSION version_name
- 追加するバージョンの一意なバージョン識別子を指定します。識別子にスペース、特殊文字、または大文字と小文字が混在する場合は、識別子全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。識別子の構文については、 識別子の要件 をご参照ください。 
- FROM 'yaml_manifest_stage_location'
- 内部またはSnowflake Gitリポジトリクローン manifest.ymlファイルのパスを指定します。変更にMarketplace Opsのレビューが必要な場合は、 REVIEW と PUBLISH の操作を使用してください。 
- { ADD | REMOVE } TARGETS manifest
- 追加または削除するターゲット*のみ*を含むマニフェストを使用して、リストにターゲットを追加またはリストからターゲットを削除します。この部分的なマニフェストは使い慣れた構造の`targets`、 - external_targets、`organization_targets`を再利用します。これらはリストマニフェスト仕様ですでに定義されているものです。- 以下のテーブルは、サポートされていないリストマニフェスト/受信マニフェストの組み合わせを示しています。 - 注釈 - V2リストはまだプレビュー段階です。機能が有効になると、公開または非公開にかかわらず、後続のすべてのリストがv2リストとして作成されます。 - 外部リストターゲットバージョン - 受信マニフェスト - 結果 - 回避策 - V1ターゲット - V2外部ターゲット - エラーを返します。 - バージョン1の受信マニフェストを提供します。 - V2ターゲット - V1ターゲット - エラーを返します。 - バージョン2の受信マニフェストを提供します。 - 任意の外部リスト - アカウントのない組織を指定する組織レベルのターゲット。 - エラーを返します。 - 現時点では、組織レベルのターゲットはサポートされていません。 - 組織リストの場合、以下の表は、ターゲットの追加と削除をサポートしない使用例を示しています。 - 外部リスト - 受信マニフェスト - 追加または削除 - 結果 - アクション - 任意の組織リスト - マニフェストには `organization_user_group`フィールドが設定されています。 - 両方 - エラーを返します。 - `organization_user_group`フィールドを削除して再試行してください。 - アカウントまたはアカウントとロール - マニフェストには `all_internal_accounts`フィールドが`TRUE`に設定されています。 - 削除 - エラーを返します。 - 特定のアカウントを削除して、再試行してください。 - リストには - all_internal_accountsフィールドが`TRUE`に設定されています。- 受信マニフェストには、アカウントまたはアカウントとロールが含まれています。 - 削除 - エラーを返します。 - all_internal_accountsを特定のアカウントに置き換え、再試行してください。- アカウントにはロールが指定されていません - 受信マニフェストには、ロールを持つアカウントがあります。 - 削除 - エラーを返します。 - 最初にアカウントを削除してから、特定のロールを追加します。 
- RENAME TO new_name
- リスト名を - new_nameに変更します。リスト名は一意でなければなりません。新しい識別子が既に別のリストで使用されている場合は、その識別子を使用することはできません。
SET ...
リストに設定する1つ(または複数)のプロパティを指定します(空白、コンマ、または改行で区切り)。
COMMENT = 'string_literal'
コメントを追加するか、既存のリストの既存のコメントを上書きします。
- PUBLISH = { TRUE | FALSE }
- リストの公開方法を指定します。 - TRUE の場合、リストはMarketplace Opsへのリストにレビューのためにすぐに公開されます。 - デフォルト: TRUE。 
- REVIEW = { TRUE | FALSE }
- リストがMarketplace Opsのレビューに提出されるべきかどうかを指定します。 - デフォルト: TRUE。 
PUBLISH、REVIEW プロパティの値の組み合わせが異なると、以下のような動が引き起こされます。
| PUBLISH | REVIEW | 動作 | 
|---|---|---|
| TRUE | TRUE | レビューをリクエストし、承認されたらすぐに公開します。 | 
| TRUE | FALSE | エラーが発生します。レビューなしで Snowflake Marketplace にリストを公開できません。 | 
| FALSE | TRUE | レビュー後、自動的に公開されることなくレビューをリクエストできます。 | 
| FALSE | FALSE | レビューや公開をリクエストせずに、リストをドラフトとして保存します。 | 
使用上の注意¶
- リスト名の変更は DRAFT の状態でのみ可能です。 
- YAML 形式マニフェストのライブバージョンをリストにセットする場合、 - COMMITを使用して変更を適用するか、- ABORTを使用して変更を破棄する必要があります。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
| 権限 | オブジェクト | 注意 | 
|---|---|---|
| OWNERSHIP または MODIFY | 変更されたリストに対して。 | 
ALTER コマンドを使用して自動履行のマニフェスト内容を変更する場合は、クロス クラウド自動履行の構成に必要な権限委譲を受けたロールを使用する必要があります。権限委譲による自動フルフィルメントのセットアップ をご参照ください。
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
例¶
更新されたマニフェスト・ファイルを使用するようにリスト mylisting を変更します。
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 *" $$;
mylisting リストを送信して確認します。
ALTER LISTING mylisting REVIEW;
リストを公開することで mylisting リストを変更します。
ALTER LISTING mylisting PUBLISH;
リストの公開を解除することで、mylisting リストを変更します。
ALTER LISTING mylisting UNPUBLISH;
新しいコメントを設定することで、mylisting リストを変更します。
ALTER LISTING mylisting SET COMMENT = 'My listing is ready!';
指定された YAML マニフェストファイルのステージの場所から新しいバージョンを追加します。
ALTER LISTING mylisting ADD VERSION V3 FROM @dbforstage.public.listingstage/listingmanifests;
リストを変更してターゲットが受信マニフェストを受け取り、それを既存のリストターゲットとマージするようにします。
ALTER LISTING mylisting ADD TARGETS $$manifest$$;
外部 V1リストにターゲットを追加します。
ALTER LISTING mylisting ADD TARGETS $$ targets: accounts: ["Org1.Account1", "Org2.Account2"] $$;
外部V2リストにターゲットを追加します。
ALTER LISTING mylisting ADD TARGETS $$ external_targets: access: - organization: OrgName2 accounts: [acc1, acc2] $$;
ターゲットを追加すると、受信マニフェストが受け取れ、既存の ``organization_targets``とマージできます。
ALTER LISTING mylisting ADD TARGETS $$ organization_targets: access: - account: account2 roles: [role1, role2] $$;
ターゲットを削除します。
ALTER LISTING mylisting REMOVE TARGETS $$manifest$$;
外部V1リストからターゲットを削除します。
ALTER LISTING mylisting REMOVE TARGETS $$ targets: accounts: ["Org1.Account1", "Org2.Account2"] $$;
外部V2リストからターゲットを削除します。
ALTER LISTING mylisting REMOVE TARGETS $$ external_targets: access: - organization: OrgName2 accounts: [acc1, acc2] $$;
組織リストからターゲットを削除します。
ALTER LISTING mylisting REMOVE TARGETS $$ organization_targets: access: - account: account1 $$;