CREATE LISTING

使用内联 YAML 清单创建免费列表,直接与特定使用者共享,或从位于暂存位置的文件中创建列表。

另请参阅:

ALTER LISTING、DESCRIBE LISTING、SHOW LISTINGS、SHOW VERSIONS IN LISTING、DROP LISTING、列表清单引用

语法

CREATE EXTERNAL LISTING [ IF NOT EXISTS ] <name>
  [ { SHARE <share_name>  |  APPLICATION PACKAGE <package_name> } ]
  AS '<yaml_manifest_string>'
  [ PUBLISH = { TRUE | FALSE } ]
  [ REVIEW = { TRUE | FALSE } ]
  [ COMMENT = '<string>' ]

CREATE EXTERNAL LISTING [ IF NOT EXISTS ] <name>
  [ { SHARE <share_name>  |  APPLICATION PACKAGE <package_name> } ]
  FROM '<yaml_manifest_stage_location>'
  [ PUBLISH = { TRUE | FALSE } ]
  [ REVIEW = { TRUE | FALSE } ]

参数

name

指定列表标识符(名称)。它必须符合以下条件:

  • 无论账户位于哪个 Snowflake 区域,在组织中都必须是唯一的。

  • 必须以字母字符开头,不能包含空格或 除 下划线 (_) 之外的特殊字符。

SHARE share_name

指定要附加到列表的共享的标识符。

APPLICATION PACKAGE package_name

指定附加到列表的应用程序包。

另请参阅 SHOW APPLICATION PACKAGES。

AS 'yaml_manifest_string'

指定列表的 YAML 清单。有关清单参数,请参阅 列表清单引用。

清单通常用以美元为引号的字符串形式提供。有关更多信息,请参阅 以美元为引号的字符串常量。

FROM 'yaml_manifest_stage_location'

指定内部暂存区或 Git 存储库克隆 manifest.yml 文件的路径。

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

不请求审核或发布,将列表另存为草稿。

COMMENT = 'string_literal'

列表的注释。

默认:无值

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限:

权限

对象

备注

CREATE LISTING

账户

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

用于配置 Cross-Cloud Auto-Fulfillment 的委派权限。

如果 ALTER 命令正为自动履行而修改清单内容。

请参阅 列表的自动履行。

Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述。

使用说明

  • 使用 CREATE LISTING ... 创建的列表会自动发布。有关取消发布和发布操作的信息,请参阅 ALTER LISTING。

示例

创建具有特定 YAML 格式清单的名为“MYLISTING”的列表,并提交以供审核和后续发布。

有关与使用 SQL 管理列表相关联的其他示例和用例,请参阅 以提供商身份通过 SQL 管理列表 – 示例。

备注

此示例使用 PUBLISH 和 REVIEW 的默认值。

CREATE EXTERNAL LISTING MYLISTING
SHARE MySHARE AS
$$
title: "MyListing"
subtitle: "Subtitle for MyListing"
description: "Description for MyListing"
listing_terms:
   type: "STANDARD"
targets:
    accounts: ["Org1.Account1"]
usage_examples:
    - title: "this is a test sql"
      description: "Simple example"
      query: "select *"
$$
;

创建名为“MYLISTING”的列表草稿,其中包含特定的 YAML 格式清单:

CREATE EXTERNAL LISTING MYLISTING
SHARE MySHARE AS
$$
title: "MyListing"
subtitle: "Subtitle for MyListing"
description: "Description for MyListing"
listing_terms:
  type: "OFFLINE"
targets:
   regions: ["PUBLIC.AWS_US_EAST_1", "PUBLIC.AZURE_WESTUS2"]
usage_examples:
   - title: "this is a test sql"
     description: "Simple example"
     query: "select *"
$$ PUBLISH=FALSE REVIEW=FALSE;

从特定的暂存位置创建名为“MYLISTING”的列表草稿。在以下示例中,manifest.yml 文件位于名为 listingstage 的暂存区的 listingmanifests 文件夹中。

CREATE EXTERNAL LISTING MYLISTING
SHARE MySHARE FROM @dbforstage.public.listingstage/listingmanifests;