Snowflake Data Clean Rooms Collaboration API

简介

这是 Snowflake Data Clean Rooms Collaboration API 的参考页面。此 API 使用 COLLABORATION 和 REGISTRY 架构。

备注

使用 Collaboration API 时,应禁用环境中的次要角色:

USE SECONDARY ROLES NONE;

要了解如何设置开发环境,请参阅 设置您的环境

要了解如何管理对 Collaboration API 过程的访问,请参阅 使用 DCR 权限管理账户、对象和过程权限

元数据备忘单

以下是查找有关协作的一些常见信息的方法:

要了解以下信息...

调用以下数据

我可以联接哪些协作?

VIEW_COLLABORATIONS – 查找 collaboration_name 列为 NULL 的协作。

我已联接哪些协作?

VIEW_COLLABORATIONS – 查找 collaboration_name 列不是 NULL 的协作,这可能意味着您已创建或联接了协作。

我拥有哪些协作?

VIEW_COLLABORATIONS – 查看 owner_account 列。

协作中所有协作者的状态是什么?

GET_STATUS

我在协作中的联接或创建状态是什么?

GET_STATUS 或 VIEW_COLLABORATIONS

谁拥有给定的协作?

GET_STATUS – 在 roles 列查找 OWNER。

我在给定协作中的协作角色是什么?

GET_STATUS – 查看 roles 列。

在给定协作中分配了哪些协作角色?

GET_STATUS – 查看 roles 列。

给定协作的规范是什么?

VIEW_COLLABORATIONS – 查看 collaboration_spec 列。

规范是最新的吗?

无法判断给定规范是否正在进行变更,但您可以调用 VIEW_COLLABORATIONS 以查看何时应用了最新更新。

我有哪些待处理的更新请求?

VIEW_UPDATE_REQUESTS。查找 STATUS = PENDING_MY_APPROVAL 的行。

显示给定协作的规范

REVIEW 返回协作规范。如果您已经致电 REVIEW 或加入协作,请调用以下 SQL 命令,其中包含您的协作名称,如下所示:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.
  VIEW_COLLABORATIONS() ->>
    SELECT "COLLABORATION_SPEC" FROM $1
      WHERE "SOURCE_NAME" = <collaboration name>;

模板过程

REGISTER_TEMPLATE

架构:

REGISTRY

注册模板以使其能够在协作中使用。对于您账户中所有注册表中的所有模板,注册的每个模板都必须具有唯一的“名称-版本”组合。

语法

REGISTER_TEMPLATE( ['<registry_name>' ,] <template_spec> )

实参

registry_name (可选)

自定义注册表 的名称在其中注册此模板。如果未指定,则在默认账户注册表中注册模板。

template_spec

模板定义 采用 YAML 格式,以字符串形式呈现。

返回

在协作规范中使用的模板 ID。

示例

在默认注册表中注册模板:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

在自定义注册表中注册模板:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下过程获得权限的角色。

要在默认注册表中注册对象,请执行以下操作:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER TEMPLATE', 'role name')

要在自定义注册表中注册项目,请执行以下操作:

  • 您对自己创建的任何自定义注册表都具有读写权限。

  • 要访问其他用户创建的自定义注册表,您需要 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name')


VIEW_REGISTERED_TEMPLATES

架构:

REGISTRY

列出您已注册的所有模板。要注册模板,请调用 REGISTRY.REGISTER_TEMPLATE。

语法

VIEW_REGISTERED_TEMPLATES( [ '<registry_name>' ] )

实参

registry_name (可选)

要列出模板的 自定义注册表 名称。如果未指定,则列出默认账户注册表中的模板。

返回

一个表,其中列出了您在此账户中注册的所有模板的详细信息。该表包括以下各列:

  • TEMPLATE_ID:模板的 ID。

  • NAME:选择使用 时默认使用的角色和仓库。模板名称。

  • VERSION:选择使用 时默认使用的角色和仓库。模板版本。

  • TEMPLATE_SPEC:选择使用 时默认使用的角色和仓库。模板的完整 YAML 规范。

  • REGISTRY:选择使用 时默认使用的角色和仓库。在其中注册模板的注册表。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_TEMPLATES();

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

要查看默认注册表中的项目,请执行以下操作:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED TEMPLATES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

要查看自定义注册表中的项目,请执行以下操作:

  • 您对自己创建的任何自定义注册表都具有读写权限。

  • 要访问其他用户创建的自定义注册表,您需要 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name')


ADD_TEMPLATE_REQUEST

架构:

COLLABORATION

发送将模板链接到现有协作的请求。如果发起方受到该请求的影响,则发起方会自动批准该请求;所有其他受影响的协作者必须批准该请求,变更才能生效。所有协作者(甚至协作所有者)都需要调用此过程,以将模板链接到现有协作中。

要添加其他模板共享者,可以使用其别名再次调用此过程。每次调用都会将 share_with 中列出的用户添加到现有的共享者列表中。

要查看请求的状态,请调用 VIEW_UPDATE_REQUESTS。

请参阅链接模板流程。

语法

ADD_TEMPLATE_REQUEST( <collaboration_name>, <template_id>, <share_with> )

实参

collaboration_name

要链接模板的协作的名称。

template_id

要链接到协作的模板的 ID。注册模板以获取此值。

share_with

要与之共享此模板的分析运行器的 别名 数组。除了与此模板关联的任何其他协作者之外,还将添加此处列出的协作者。此处列出的所有协作者都必须是分析运行者,否则在不与任何人共享此模板的情况下,过程将失败。

返回

字符串成功消息。

示例

-- Ask to link the template only for Collaborator3 in this collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ADD_TEMPLATE_REQUEST(
  $collaboration_name,
  $template_alias,
  ['Collaborator3']
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • 以下任一权限:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'),加上必须手动授予角色的所有其他账户级权限。

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'),加上必须手动授予角色的所有其他账户级权限。

  • 如果模板位于自定义注册表中,您还必须拥有 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name')


REMOVE_TEMPLATE

架构:

COLLABORATION

从指定协作者的给定协作中移除模板的异步请求。只有注册模板的协作者才能移除模板。移除您已注册的模板不需要任何其他人的批准。为协作者移除模板后,该协作者将无法看到或使用该模板。

语法

REMOVE_TEMPLATE( <collaboration_name>, <template_id>, <remove_for> )

实参

collaboration_name

要从中移除模板的协作的名称。

template_id

要从协作中移除的模板的 ID。

remove_for

此协作中一个或多个分析执行器的 别名 数组,这些分析执行器应该无法再看到或使用此模板。

返回

字符串成功消息。要查看协作者的模板是否已移除,请查看协作规范。

示例

-- Prevent collaborator_1234 from using the specified template
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REMOVE_TEMPLATE(
  $collaboration_name,
  $template_id,
  ['collaborator_1234']
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • 以下任一权限:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'),加上必须手动授予角色的所有其他账户级权限。

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'),加上必须手动授予角色的所有其他账户级权限。

  • 如果模板位于自定义注册表中,或者引用了自定义注册表中的代码样式,则还必须拥有 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name')


VIEW_TEMPLATES

架构:

COLLABORATION

显示您可以运行或已提交到指定协作的所有模板。

语法

VIEW_TEMPLATES( <collaboration_name> )

实参

collaboration_name

协作的名称。您必须先查看或联接此协作,然后才能列出其模板。

返回

一个表,其中列出了有关您可以在此协作中运行的模板(包括您已注册的模板)的信息。该表包括以下各列:

  • template_id:选择使用 时默认使用的角色和仓库。模板 ID。将其传入 RUN 命令的 template 字段或 template_id 参数中。

  • template_spec:选择使用 时默认使用的角色和仓库。该模板的 模板规范,其中包含该模板完整的 JinjaSQL

  • parameters:选择使用 时默认使用的角色和仓库。该模板支持的所有实参说明,格式为 JSON。每个参数的信息包括名称、默认值、模板提供商编写的描述以及是否为必填项。将这些参数的值传入您的 RUN 命令中。

  • shared_by:选择使用 时默认使用的角色和仓库。注册此模板的协作者。

  • shared_with:选择使用 时默认使用的角色和仓库。此模板的共享对象(协作者)。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_TEMPLATES(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW TEMPLATES', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_TEMPLATE_AUTO_APPROVAL

架构:

COLLABORATION

使其他协作者发送的所有模板更新请求自动获得批准。请求仍将显示在请求日志中。这仅影响启用自动审批后发送的请求。

语法

ENABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

实参

collaboration_name

协作的名称。

返回

字符串成功消息。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


DISABLE_TEMPLATE_AUTO_APPROVAL

架构:

COLLABORATION

禁用对其他协作者提出的模板请求的自动批准。未来的所有请求都必须通过调用 APPROVE_UPDATE_REQUEST 来手动批准。

语法

DISABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )

实参

collaboration_name

协作的名称。

返回

字符串成功消息。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

数据产品过程

REGISTER_DATA_OFFERING

架构:

REGISTRY

注册数据产品,以便将其链接到协作定义中。您无法将已注册的数据产品取消注册。您无法覆盖现有数据产品,但可以注册具有相同名称和新版本的新数据产品。创建数据产品的新版本不会移除任何早期版本。

对于您账户中所有注册表中的所有数据产品,每个数据产品都必须具有唯一的“名称-版本”组合。

如果要与协作中的其他人共享此表,请在创建协作之前将其包含在协作规范中。

您必须拥有您在协作中共享的任何数据的带 GRANT OPTION 的 REFERENCE_USAGE 权限。如果不这样做,当您尝试联接协作或注册对象时,您将收到“缺少引用使用授权”错误。了解如何处理此问题。

语法

REGISTER_DATA_OFFERING( ['<registry_name>' ,] <data_offering_spec> )

实参

registry_name (可选)

用于注册此数据产品的 自定义注册表 的名称。如果未指定,则在默认账户注册表中注册数据产品。

data_offering_spec

数据产品定义 采用 YAML 格式,用于描述此数据产品。

返回

在协作的 data_offerings.id 字段中使用的数据产品 ID。

示例

在默认注册表中注册数据产品:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

在自定义注册表中注册数据产品:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    'my_custom_registry',
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下过程获得权限的角色。

要在默认注册表中注册数据产品,请执行以下操作:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER DATA OFFERING', 'role name')

要在自定义注册表中注册项目,请执行以下操作:

  • 您对自己创建的任何自定义注册表都具有读写权限。

  • 要访问其他用户创建的自定义注册表,您需要 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name')


VIEW_REGISTERED_DATA_OFFERINGS

架构:

REGISTRY

列出您已注册的所有数据产品。要查看其他人链接的协作中的数据产品,请调用 COLLABORATION.VIEW_DATA_OFFERINGS。

语法

VIEW_REGISTERED_DATA_OFFERINGS( [ '<registry_name>' ] )

实参

registry_name (可选)

用于列出数据产品的 自定义注册表 的名称。如果未指定,则列出默认账户注册表中的数据产品。

返回

一个表,列出您在此账户中注册的所有数据产品详细信息。该表包括以下各列:

  • DATA_OFFERING_ID:数据产品的 ID。

  • NAME:选择使用 时默认使用的角色和仓库。数据产品名称。

  • VERSION:选择使用 时默认使用的角色和仓库。数据产品版本。

  • DATA_OFFERING_SPEC:选择使用 时默认使用的角色和仓库。数据产品的完整 YAML 规范。

  • REGISTRY:选择使用 时默认使用的角色和仓库。在其中注册数据产品的注册表。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS();

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

要查看默认注册表中的项目,请执行以下操作:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED DATA OFFERINGS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

要查看自定义注册表中的项目,请执行以下操作:

  • 您对自己创建的任何自定义注册表都具有读写权限。

  • 要访问其他用户创建的自定义注册表,您需要 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name')


VIEW_DATA_OFFERINGS

架构:

COLLABORATION

列出您作为分析执行者可以访问的或您自己链接的指定协作中的所有数据产品。要仅查看您已注册的数据产品,请调用 REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS。

只有在 X 已联接协作后,您才能看到来自协作者 X 的数据产品。

语法

VIEW_DATA_OFFERINGS( <collaboration_name> )

实参

collaboration_name

要探索的协作的名称。

返回

有关指定协作中所有数据产品的信息。该表包括以下各列:

  • template_view_name:选择使用 时默认使用的角色和仓库。在使用模板调用 RUN 进行查询时,用于引用产品的完全限定视图名称。将此名称传入 RUN 规范中的 source_tables 字段。

  • template_join_columns:选择使用 时默认使用的角色和仓库。该表中可用于基于模板的查询联接的列名称。

  • analysis_allowed_columns:选择使用 时默认使用的角色和仓库。该表中可用于基于模板的查询投影的列的名称。

  • activation_allowed_columns:选择使用 时默认使用的角色和仓库。该表中可以激活的列名。

  • freeform_sql_view_name:选择使用 时默认使用的角色和仓库。当数据集支持 自由格式 SQL 查询 时,自由格式 SQL 查询中使用的完全限定视图名称。如果数据集不提供自由格式 SQL 查询,则此单元格为空。

  • freeform_sql_column_policies:选择使用 时默认使用的角色和仓库。此协作中所有 自由格式列策略 的 JSON 表示,按策略类型键入。

  • shared_by:选择使用 时默认使用的角色和仓库。链接此数据产品或服务的协作者。

  • shared_with:选择使用 时默认使用的角色和仓库。谁可以在分析中使用数据。如果此值为 LOCAL,这是一个本地数据集,除托管数据的一方外,不与任何协作者共享。

  • data_offering_id:选择使用 时默认使用的角色和仓库。此数据产品的唯一 ID,在注册时生成。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW DATA OFFERINGS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

自定义函数过程

REGISTER_CODE_SPEC

架构:

REGISTRY

注册代码包。这会将 Clean Room 环境中的代码存储在 REGISTRY.CODE_SPECS 表中。注册代码规范后,模板即可使用它。

注册的每个代码规范在您账户中的所有注册表中都必须具有唯一的“名称-版本”组合。

语法

REGISTER_CODE_SPEC( ['<registry_name>' ,] <code_spec> )

实参

registry_name (可选)

用于注册此代码规范的 自定义注册表 的名称。如果未指定,则在默认账户注册表中注册代码包。

code_spec

以字符串形式表示的 YAML 格式的代码包规范定义。

返回

生成的代码包规范 ID。

示例

在默认注册表中注册代码包:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

在自定义注册表中注册代码包:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_CODE_SPEC(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: code_spec
  name: custom_udf
  version: v1
  description: Custom UDF for data normalization

  functions:
    - name: normalize_value
      type: UDF
      language: PYTHON
      runtime_version: "3.10"
      handler: normalize
      arguments:
        - name: value
          type: FLOAT
        - name: min_val
          type: FLOAT
        - name: max_val
          type: FLOAT
      returns: FLOAT
      code_body: |
        def normalize(value, min_val, max_val):
            if max_val == min_val:
                return 0.0
            return (value - min_val) / (max_val - min_val)
  $$
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下过程获得权限的角色。

要在默认注册表中注册对象,请执行以下操作:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER CODE SPEC', 'role name')

要在自定义注册表中注册项目,请执行以下操作:

  • 您对自己创建的任何自定义注册表都具有读写权限。

  • 要访问其他用户创建的自定义注册表,您需要 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name')


VIEW_REGISTERED_CODE_SPECS

架构:

REGISTRY

列出此角色在本地账户注册表中注册的所有代码包规范。

语法

VIEW_REGISTERED_CODE_SPECS( [ '<registry_name>' ] )

实参

registry_name (可选)

要从中列出代码捆绑包的 自定义注册表 的名称。如果未指定,则列出默认账户注册表中的代码捆绑包。

返回

列出您在此账户中注册的所有代码包详细信息的表。该表包括以下各列:

  • code_spec_id:代码包规范的 ID。

  • name:选择使用 时默认使用的角色和仓库。代码包规范名称。

  • version:选择使用 时默认使用的角色和仓库。代码包规范版本。

  • code_spec:选择使用 时默认使用的角色和仓库。代码包规范的完整 YAML 规范。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_CODE_SPECS();

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

要查看默认注册表中的项目,请执行以下操作:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED CODE SPECS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

要查看自定义注册表中的项目,请执行以下操作:

  • 您对自己创建的任何自定义注册表都具有读写权限。

  • 要访问其他用户创建的自定义注册表,您需要 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name')


VIEW_CODE_SPECS

架构:

COLLABORATION

返回由您创建的或可以在指定协作中运行的任何模板引用的所有代码包规范。

语法

VIEW_CODE_SPECS( <collaboration_name> )

实参

collaboration_name

协作的名称。

返回

列出指定协作中可用的代码包的表。该表包括以下各列:

  • code_spec_id:此代码包规范的 ID。

  • code_spec:选择使用 时默认使用的角色和仓库。代码包规范的完整 YAML 规范。

  • shared_by:选择使用 时默认使用的角色和仓库。共享代码包规范的协作者别名。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_CODE_SPECS(
  $collaboration_id
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW CODE SPECS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

更新请求过程

这些过程用于管理需要批准的协作更新请求,例如 链接模板流程。

VIEW_UPDATE_REQUESTS

架构:

COLLABORATION

查看您在指定协作中已创建或可以批准或拒绝的所有更新请求。这包括所有协作变更,例如添加数据产品、模板和代码包。此过程用于显示更新状态。更新请求可能需要几秒钟的时间才会出现在请求列表中,因此您可能看不到刚才发送的请求。

请参阅链接模板流程。

语法

VIEW_UPDATE_REQUESTS( <collaboration_name> )

实参

collaboration_name

协作的名称。

返回

在此协作中发送的更新请求表。信息包括

  • id:请求的 ID。将其用于批准或拒绝请求。

  • type:选择使用 时默认使用的角色和仓库。请求的类型。支持以下值:

    • 添加模板

    • 关联数据产品

    • 取消关联数据产品

    • 移除模板

  • status:选择使用 时默认使用的角色和仓库。请求的当前状态。可以报告以下状态:

    • REQUESTED:选择使用 时默认使用的角色和仓库。请求已提交。

    • PENDING_MY_APPROVAL:选择使用 时默认使用的角色和仓库。该请求正在等待您的批准或拒绝。

    • PENDING_PARTNER_APPROVAL:选择使用 时默认使用的角色和仓库。您已批准该请求,但该请求仍需要得到一个或多个其他协作者的批准。

    • REJECTED:选择使用 时默认使用的角色和仓库。协作中有人拒绝了此请求。

    • APPROVED:选择使用 时默认使用的角色和仓库。所有必需的审批者都已批准该请求。

    • COMPLETED:选择使用 时默认使用的角色和仓库。更新操作已完成,变更已应用于协作。对于包含代码捆绑包的模板,您仍应 检查升级状态 以查看代码捆绑包何时可以调用。

    • FAILED:选择使用 时默认使用的角色和仓库。更新操作失败。请参阅 DETAILS 列了解故障详细信息。

  • approval_log:选择使用 时默认使用的角色和仓库。该请求的所有批准和拒绝的日志。如果该请求被拒绝,此处还会提供拒绝方给出的原因。

  • details:选择使用 时默认使用的角色和仓库。特定于请求类型的详细信息,例如模板名称、描述以及“添加模板”请求的共享对象。

  • spec:选择使用 时默认使用的角色和仓库。正在更新的资源的详细信息,例如“添加模板”请求的模板规范。

  • updated_on:选择使用 时默认使用的角色和仓库。上次对此请求采取操作(例如,批准或拒绝)的时间戳。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_UPDATE_REQUESTS(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW UPDATE REQUESTS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


APPROVE_UPDATE_REQUEST

架构:

COLLABORATION

批准协作更新请求。通过调用 VIEW_UPDATE_REQUESTS 来查看待处理请求列表。您批准某个请求后,以后将无法将其拒绝。

在将变更实际应用于协作之前,所有受影响的协作者都必须批准请求。

请参阅链接模板流程。

语法

APPROVE_UPDATE_REQUEST( <collaboration_name>, <request_id> )

实参

collaboration_name

协作的名称。

request_id

请求的 ID。

返回

字符串成功消息。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.APPROVE_UPDATE_REQUEST(
  $collaboration_name,
  $request_id
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REJECT_UPDATE_REQUEST

架构:

COLLABORATION

拒绝协作更新请求。单次拒绝会阻止将变更应用于协作。您无法在拒绝请求后批准该请求。

语法

REJECT_UPDATE_REQUEST( <collaboration_name>, <request_id>, <reason> )

实参

collaboration_name

协作的名称。

request_id

请求的 ID。

reason

人类可读的描述,说明请求被拒绝的原因。该实参是必需的,但您可以提交空字符串。

返回

字符串成功消息。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REJECT_UPDATE_REQUEST(
  $collaboration_name,
  'request_1324f934457',
  'Needs more cowbell'
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

协作管理过程

INITIALIZE

架构:

COLLABORATION

所有者调用此函数来创建协作,并可选择联结协作。如果 auto_join_warehouse 为 FALSE,则必须单独调用 JOIN 才能使该协作对其他协作者可用。您必须使用相同的角色先后调用 INITIALIZE 和 JOIN。

如果提交的协作定义与现有协作的 name 值相同,将会引发错误。

创建和联结协作需要一些时间,因此您必须调用 GET_STATUS 才能了解何时联结协作。

语法

INITIALIZE( <collaboration_spec> [, '<auto_join_warehouse>'] )

实参

collaboration_spec

协作定义 采用 YAML 格式,以字符串形式呈现。

auto_join_warehouse (可选)

将仓库名称指定为有效 Snowflake 标识符的字符串。如果指定,将使用此仓库创建和联结协作。如果未指定,则当前仓库将用于创建协作,并且您必须调用 JOIN 来联结协作。推荐使用 XS 仓库。

返回

返回包含以下列的表:

  • collaboration_name:选择使用 时默认使用的角色和仓库。协作的名称。在任何需要您指定协作的过程中使用此选项。

  • message:选择使用 时默认使用的角色和仓库。有关初始化请求的信息。

  • auto_join_task:选择使用 时默认使用的角色和仓库。如果已指定 auto_join_warehouse,则指示是否已创建自动加入任务。

示例

以下示例创建了一个协作,其中 Alice 是所有者,并且可以使用 Bob 提供的数据运行分析。

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.INITIALIZE(
  $$
  api_version: 2.0.0
  spec_type: collaboration
  name: basic_collaboration
  owner: alice
  collaborator_identifier_aliases:
    alice: corp_id.account_id
    bob: corp2_id.account2_id
  analysis_runners:
    alice:
      data_providers:
        bob:
          data_offerings:
          - id: bob_data_v1
      templates:
      - id: alice_test_template_2026_01_12_V1
  $$,
  'APP_WH'
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

    如果提供 auto-join-warehouse 参数并使用除 SAMOOHA_APP_ROLE 以外的角色,还必须向该角色授予 EXECUTE TASK 账户级权限。

有关所需的其他角色权限,请参阅 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE


TEARDOWN

架构:

COLLABORATION

由所有者调用,用于删除所有各方的协作。

必须调用此过程两次。 调用一次,然后调用 GET_STATUS 直到返回 LOCAL_DROP_PENDING,然后再次调用此过程。

备注

只能对您已创建和联接的协作调用此过程。如果您已创建但尚未联接协作,则必须先联接协作,然后才能将其拆除。

语法

TEARDOWN( <collaboration_name> )

实参

collaboration_name

要删除的协作的名称。

返回

字符串成功消息。

示例

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

有关所需的其他角色权限,请参阅 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE


GET_STATUS

架构:

COLLABORATION

显示有关给定协作中所有协作者的信息。

运行异步操作(例如创建或联接协作)时,必须检查状态以了解上次操作何时完成,然后才能对该协作执行其他操作(例如运行分析)。受邀参与协作的任何协作者都可以调用此过程。

协作所有者可以看到以下状态路径:

  • CREATING » CREATED » INSTALLING » IN_REVIEW(或 INSTALLATION_FAILED)|ra| JOINING » JOINED(或 JOIN_FAILED)

非所有者将看到以下状态路径:

  • INSTALLING » IN_REVIEW(或 INSTALLATION_FAILED)|ra| JOINING » JOINED(或 JOIN_FAILED)

语法

GET_STATUS( <collaboration_name> )

实参

collaboration_name

要查看其状态的协作的名称。您可以通过调用 COLLABORATION.VIEW_COLLABORATIONS 来查看协作列表。您必须先受邀参与协作或已联接协作,然后才能对该协作调用 GET_STATUS。

返回

一个表,其中显示有关指定协作中所有协作者的最新联接尝试的详细信息。该表包括以下各列:

  • updated_on:选择使用 时默认使用的角色和仓库。系统报告状态的时间戳。

  • collaborator_account:选择使用 时默认使用的角色和仓库。此协作者的数据共享账户 ID。

  • collaborator_name:选择使用 时默认使用的角色和仓库。协作规范中声明的协作者别名。

  • roles:选择使用 时默认使用的角色和仓库。此协作者的实际和潜在角色。值包括 ownerdata_provideranalysis_runner

  • status:选择使用 时默认使用的角色和仓库。更新时的状态。支持以下值,并显示指定协作中指定协作者的状态。

    • CREATING:选择使用 时默认使用的角色和仓库。协作创建已启动。

    • CREATE_FAILED:选择使用 时默认使用的角色和仓库。协作创建失败。

    • CREATE_TIMED_OUT:选择使用 时默认使用的角色和仓库。协作创建超时。

    • CREATED:选择使用 时默认使用的角色和仓库。协作已创建,可以进行操作。

    • INSTALLING:选择使用 时默认使用的角色和仓库。安装应用程序包并准备协作详细信息以供审查。

    • IN_REVIEW:选择使用 时默认使用的角色和仓库。协作正在审核中。

    • INSTALLATION_FAILED:选择使用 时默认使用的角色和仓库。安装失败;应用程序包未安装,无法查看。

    • INVITED:选择使用 时默认使用的角色和仓库。已邀请参与者。

    • JOINING:选择使用 时默认使用的角色和仓库。联接过程已启动。

    • JOIN_FAILED:选择使用 时默认使用的角色和仓库。联接过程失败。

    • JOINED:选择使用 时默认使用的角色和仓库。已成功联接该协作。您可以开始使用协作。

    • LEAVING:选择使用 时默认使用的角色和仓库。退出过程已启动。

    • LEAVE_FAILED:选择使用 时默认使用的角色和仓库。退出过程失败。

    • LEFT:选择使用 时默认使用的角色和仓库。成功退出该协作。

    • LOCAL_DROP_PENDING:选择使用 时默认使用的角色和仓库。您已成功提交删除或退出该协作的请求。请再次调用 TEARDOWN 或 LEAVE 来完成该过程。

    • DROPPING:选择使用 时默认使用的角色和仓库。删除过程已启动。

    • DROPPED:选择使用 时默认使用的角色和仓库。已成功删除。

    • DROP_FAILED:选择使用 时默认使用的角色和仓库。删除过程失败。

  • details:选择使用 时默认使用的角色和仓库。有关当前状态的其他详细信息(如有)。

  • region:选择使用 时默认使用的角色和仓库。此协作者所属的云区域。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('GET STATUS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION

架构:

ADMIN

启用外部表和 Apache Iceberg™ 表,以便在您的账户中将其用于运行分析。分析执行器必须调用此过程,然后才能运行任何包含外部表或 Iceberg 表的分析。此过程在每次协作时调用一次,而不是在每次分析时调用一次。

语法

ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION( <collaboration_name> )

实参

collaboration_name

协作的名称。

返回

包含 MESSAGE 列的表,其中显示成功消息。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用获得 MANAGE FIREWALL CONFIGURATION 权限的角色才能调用此过程。


VIEW_COLLABORATIONS

架构:

COLLABORATION

查看有关您已创建、可以查看或已联接的协作的信息。

语法

VIEW_COLLABORATIONS()

实参

返回

列出您可以访问的所有协作的详细信息的表。该表包括以下各列:

  • source_name:选择使用 时默认使用的角色和仓库。协作的名称,由协作规范中的 name 值指定。

  • collaboration_name:选择使用 时默认使用的角色和仓库。已安装的协作的名称。在通过调用 JOIN(所有者)或 REVIEW(非所有者)安装协作之前,此值为 NULL。

  • owner_account:选择使用 时默认使用的角色和仓库。创建了协作的账户的数据共享 ID。

  • updated_on:选择使用 时默认使用的角色和仓库。上次更新协作的时间。

  • collaboration_spec:选择使用 时默认使用的角色和仓库。此协作的规范采用 YAML 格式。这将显示协作的最新版本,包括创建协作后链接或移除的任何资源。不过,可能有一些正在处理中的更新请求即将完成关联,例如新增或移除的模板,以及提供的数据产品。

示例

查看所有协作:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS();

按名称查看给定协作的规范:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1 WHERE "SOURCE_NAME" = $collaboration_name;

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW COLLABORATIONS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REVIEW

架构:

COLLABORATION

提供有关您受邀参加的协作的详细信息。调用 COLLABORATION.VIEW_COLLABORATIONS 来查看您已受邀但尚未联接的协作。除所有者之外的所有协作者都必须先调用此过程,然后才能调用 JOIN。您不能对已联接的协作调用此过程。您必须使用相同的角色才能调用 REVIEW 和 JOIN。如果您的账户与所有者位于不同的云托管区域,您可能需要多次调用此过程,直到它返回成功的响应。

此过程将在您的账户中安装基础应用程序。

重要说明:

  • 所有者无法对自己的协作调用 REVIEW。

  • 除所有者外,每个人都必须先调用 REVIEW,然后才能调用 JOIN。

  • 联接协作后,您无法再次调用 REVIEW。

语法

REVIEW( <source_name>, <owner_account> )

实参

source_name

您受邀联接的协作的名称。您可以通过调用 COLLABORATION.VIEW_COLLABORATIONS 来查看协作列表。

owner_account

所有者的 数据共享账户标识符。这可以在对 COLLABORATION.VIEW_COLLABORATIONS 的响应中找到。

返回

有关协作的信息表,包括协作 ID、所有者和协作规范。

如果您的账户位于与协作所有者 不同的云托管区域,REVIEW 可能会返回一条消息,说明仍在执行其他设置步骤。如果您收到此消息,请继续调用 REVIEW,直到返回有关协作的信息表。

示例

-- View the collaboration for your own usage.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REVIEW(
  $collaboration_name,
  'org1.account1234'
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REVIEW COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

有关所需的其他角色权限,请参阅 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE


JOIN

架构:

COLLABORATION

用于联接指定协作的异步方法。请注意,您只能访问联接时协作中列出的资源。此过程需要一些时间才能运行。

您需要 REGISTER DATA OFFERING 账户权限才能联接任何可以在其中激活数据的协作(即,您是分析执行者,并且协作规范包括 activation_destinations 字段)。请参阅 访问管理 API 参考指南

运行此过程时,您不能拥有活动的次要角色。运行以下 SQL 代码以禁用任何次要角色:

USE SECONDARY ROLES NONE;

除协作创建者外,每个人都必须先调用 COLLABORATION.REVIEW,然后才能调用此过程。

此过程是异步的;调用 GET_STATUS 以确定您何时成功联接了协作。

向协作提交资源或想要在协作中运行模板的任何人都必须先联接协作。协作创建者在调用 INITIALIZE 时会自动加入(除非将 auto_join_warehouse 设置为 FALSE)。

语法

JOIN( <collaboration_name> )

实参

collaboration_name

要联接的协作的名称。您可以通过调用 COLLABORATION.VIEW_COLLABORATIONS 来查看协作列表。如果您受邀联接具有相同名称的多个协作,系统将默认选择您对其调用过 COLLABORATION.REVIEW 的最后一个协作。

返回

字符串成功消息。如果您收到有关缺少引用使用授权的错误,请参阅 故障排除指南

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.JOIN(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

有关所需的其他角色权限,请参阅 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE


LEAVE

架构:

COLLABORATION

退出您已联接的协作。退出协作后,您无法重新联接该协作。

必须调用此过程两次。 调用一次,然后调用 GET_STATUS 直到返回 LOCAL_DROP_PENDING,然后再次调用此过程。

语法

LEAVE( <collaboration_name> )

实参

collaboration_name

要退出的协作的名称。

返回

字符串成功消息。

示例

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

有关所需的其他角色权限,请参阅 GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE


GET_CONFIGURATION

架构:

COLLABORATION

返回协作的当前配置设置。在调用此过程之前,您必须已加入该协作。

语法

GET_CONFIGURATION( <collaboration_name> )

实参

collaboration_name

协作的名称。

返回

返回包含以下列的表:

描述

CONFIGURATION

配置设置的名称。

VALUE

配置的当前值。

STATUS

该值是处于 ACTIVE 状态还是 PENDING 状态(即已请求变更但尚未应用)。

支持的配置

配置名称

描述

TEMPLATE_AUTO_APPROVAL

是否自动批准来自其他协作者的模板更新请求。值:truefalse。默认:false

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_CONFIGURATION(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


SET_CONFIGURATION

架构:

COLLABORATION

为协作设置配置值。该变更为异步操作:请调用 GET_CONFIGURATION 来检查新值是否已应用。在调用此过程之前,您必须已加入该协作。

TEMPLATE_AUTO_APPROVAL 设置为 true 等同于调用 ENABLE_TEMPLATE_AUTO_APPROVAL,将其设置为 false 则等同于调用 DISABLE_TEMPLATE_AUTO_APPROVAL。

语法

SET_CONFIGURATION( <collaboration_name>, <config_name>, <value> )

实参

collaboration_name

协作的名称。

config_name

要设置的配置名称。有关支持的配置名称,请参阅 GET_CONFIGURATION。

value

配置的新值。必须是该配置名称对应的有效值。

返回

确认请求已接受的字符串消息。

示例

-- Enable automatic approval of template requests
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.SET_CONFIGURATION(
  $collaboration_name,
  'TEMPLATE_AUTO_APPROVAL',
  'true'
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

运行分析和激活

RUN

架构:

COLLABORATION

在 Data Clean Room 中运行分析。您可以以独立参数的形式传递运行详细信息,也可以通过传入 分析 YAML 规范字符串 传递运行详细信息。

有关在 Data Clean Room 中运行模板的背景信息,请参阅 consumer.run_analysis 参考。

此过程有两个版本:一个版本将运行实参作为单个 YAML 格式的字符串,另一个版本则将实参作为单独的参数。

语法

YAML 实参语法:

RUN( <collaboration_name>, <analysis_spec> )

显式参数语法:

RUN( <collaboration_name>, <template_id>, <template_view_names>, <local_template_view_names>, <arguments> )

实参

collaboration_name

要在其中运行此分析的协作的名称。

analysis_spec

分析定义,采用 YAML 格式,以字符串形式呈现,描述要在此分析中使用的模板、表和模板值。配合 YAML 实参语法使用。

template_id

要运行的模板的 ID。

template_view_names

要在分析中使用的源表的字符串名称数组。使用 template_view_name 列中 VIEW_DATA_OFFERINGS 返回的表名。每个条目的格式为 user_alias.data_offering_id.dataset_alias

local_template_view_names

要在分析中使用的您自己的表的字符串 IDs 数组。您必须先通过调用 LINK_LOCAL_DATA_OFFERING 来链接这些表。

arguments

包含模板使用的命名实参的 JSON 对象,其中每个键都是模板实参名称,值是该实参的值。

返回

以表格形式呈现的分析结果。

示例

按参数传递示例:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $template_name,
  ['Provider.data_offering_1_2026_01_12_v0.test_dataset'], -- Tables to pass to source_tables variable.
  [],
  {} -- Template takes no parameters.
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


VIEW_ACTIVATIONS

架构:

COLLABORATION

显示您触发发送给协作者的任何分析运行的激活状态,或者协作者触发发送给您的激活。未列出向自己发送数据的激活请求。

有关激活的更多信息,请参阅 Implementing activation

语法

VIEW_ACTIVATIONS( <collaboration_name> )

实参

collaboration_name

协作的名称。

返回

包含每次激活详细信息的表。该表包括以下各列:

  • updated_on:选择使用 时默认使用的角色和仓库。上次更新状态的时间。

  • segment_name:选择使用 时默认使用的角色和仓库。分析执行器分配的任意字符串,用于标识此激活。有关更多信息,请参阅 Activating query results

  • batch_id:选择使用 时默认使用的角色和仓库。此激活请求的批次 ID。有关更多信息,请参阅 查看提供商和使用者激活结果

  • template_id:选择使用 时默认使用的角色和仓库。用于生成此激活数据的模板。

  • shared_by:选择使用 时默认使用的角色和仓库。已运行分析的协作者。

  • shared_with:选择使用 时默认使用的角色和仓库。应接收分析数据的协作者。

  • status:选择使用 时默认使用的角色和仓库。激活的状态。支持以下值:

    • PENDING:选择使用 时默认使用的角色和仓库。已请求激活,但正在等待处理。

    • REPLICATING:选择使用 时默认使用的角色和仓库。激活数据正在复制到目标区域。

    • SHARED:选择使用 时默认使用的角色和仓库。激活数据可进行处理。调用 PROCESS_ACTIVATION 将结果发送到您的账户。

    • FAILED:选择使用 时默认使用的角色和仓库。激活处理失败。请参阅 details 列中的信息。

    • PROCESSED:选择使用 时默认使用的角色和仓库。激活结果已发送到激活请求中指定的账户。

  • details:选择使用 时默认使用的角色和仓库。失败详细信息(如果激活失败)。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_ACTIVATIONS(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW ACTIVATIONS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


PROCESS_ACTIVATION

架构:

COLLABORATION

如果分析执行器正在向另一个协作者的账户发送数据,则该协作者应调用 PROCESS_ACTIVATION 将激活数据导入到其账户。该协作者应调用 VIEW_ACTIVATIONS,并等待输出显示给定段的激活状态为 SHARED,然后再调用 PROCESS_ACTIVATION。

有关更多信息,请参阅 Implementing activation

语法

PROCESS_ACTIVATION( <collaboration_name> [, <segment_name> | <array_of_batch_ids> ] )

实参

collaboration_name

协作的名称。

segment_name (可选)

要处理的特定激活段的字符串名称。

batch_ids (可选)

要处理的激活批次 IDs 的字符串数组。此值使用 VIEW_ACTIVATIONS 返回。如果未包含在内,则请求将处理调用方指定协作中的所有待处理激活。

返回

用户可以检索结果的表名称,以及为结果指定的段名称。请参阅 Implementing activation,了解如何读取结果。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.PROCESS_ACTIVATION(
  $collaboration_name
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('PROCESS ACTIVATION', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

注册表管理程序

本部分包含用于注册对象的过程。有关更多信息:

CREATE_REGISTRY

架构:

REGISTRY

创建自定义注册表以组织模板和数据产品等资源。自定义注册表可以存储创建注册表时指定的单一类型的资源。

使用自定义注册表将相关资源与默认本地注册表分开分组。使用可选的注册表名称参数将资源添加到此注册表。

语法

CREATE_REGISTRY( '<registry_name>', <registry_type> )

实参

registry_name

要创建的注册表的名称。必须是账户中所有注册表中的唯一名称。

registry_type

此注册表将包含的资源类型。支持的值:TEMPLATEDATA OFFERING

返回

字符串成功消息。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
  'my_custom_registry',
  'TEMPLATE'
);

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')


VIEW_REGISTRIES

架构:

REGISTRY

列出您有权访问的所有注册表,包括默认的本地注册表和任何自定义注册表。

语法

VIEW_REGISTRIES()

实参

无。

返回

一个表,其中包含您可以访问的每个注册表的一行。

示例

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTRIES();

访问要求

如果不使用 SAMOOHA_APP_ROLE 角色,则必须使用通过调用以下任一过程获得权限的角色:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTRIES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')

要使自定义注册表对 VIEW_REGISTRIES 可见,您还必须拥有 READ 或 REGISTER 权限,由以下过程调用之一授予:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'registry name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'registry name', 'role name')

访问管理过程

SAMOOHA_APP_ROLE 角色授予对所有 Data Clean Room Collaboration API 过程的访问权限。但是,如果管理员想向特定角色授予更精细的权限,您可以创建一个角色,并按照本节中描述的过程授予其特定权限。了解有关管理 Collaboration API 访问权限的更多信息:访问管理文档

以下过程用于管理对 Snowflake Data Clean Room Collaboration API 的细粒度访问权限:

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

架构:

ADMIN

授予指定角色对特定对象调用特定过程的权限。

您可以多次调用此过程,以向同一角色授予多个权限。使用拥有该对象的角色运行此过程。

语法

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  '<privilege>',
  '<object_type>',
  '<object_name>',
  '<account_role_name>'
);

实参

'privilege'

应授予此角色什么权限。请参阅下表,了解哪些权限可用于哪些对象。

'object_type'

向此角色授予权限的对象类型。支持的值:

  • COLLABORATION

  • REGISTRY

'object_name'

按照对象规范中指定的对象的 ID。

'account_role_name'

获得授权的角色。

支持以下权限和对象类型组合:

复合权限

以下复合权限可一次性授予对多个存储过程的访问权限:

权限

对象类型

已启用的过程

READ

COLLABORATION

VIEW_COLLABORATIONS、GET_STATUS、GET_CONFIGURATION、VIEW_CODE_SPECS、VIEW_DATA_OFFERINGS、VIEW_UPDATE_REQUESTS、VIEW_TEMPLATES

RUN

COLLABORATION

RUN、 VIEW_ACTIVATIONS、 VIEW_COLLABORATIONS

UPDATE

COLLABORATION

LINK_LOCAL_DATA_OFFERING, UNLINK_LOCAL_DATA_OFFERING, ADD_TEMPLATE_REQUEST, REMOVE_TEMPLATE, APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST, ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, SET_CONFIGURATION, VIEW_UPDATE_REQUESTS

READ

REGISTRY

查看在 自定义注册表 中注册的资源。

REGISTER

REGISTRY

自定义注册表 中查看或注册模板和数据产品等资源。

细粒度权限

以下细粒度权限授予对特定协作中单个过程的访问权限:

权限

已启用的过程

GET STATUS

GET_STATUS

VIEW DATA OFFERINGS

VIEW_DATA_OFFERINGS

VIEW TEMPLATES

VIEW_TEMPLATES

VIEW CODE SPECS

VIEW_CODE_SPECS

VIEW UPDATE REQUESTS

VIEW_UPDATE_REQUESTS

VIEW ACTIVATIONS

VIEW_ACTIVATIONS

ADD TEMPLATE REQUEST

ADD_TEMPLATE_REQUEST

REMOVE TEMPLATE

REMOVE_TEMPLATE

MANAGE UPDATE REQUEST

APPROVE_UPDATE_REQUEST、REJECT_UPDATE_REQUEST

MANAGE TEMPLATE AUTO APPROVAL

ENABLE_TEMPLATE_AUTO_APPROVAL、DISABLE_TEMPLATE_AUTO_APPROVAL、GET_CONFIGURATION、SET_CONFIGURATION

LINK LOCAL DATA OFFERINGS

LINK_LOCAL_DATA_OFFERING

UNLINK LOCAL DATA OFFERINGS

UNLINK_LOCAL_DATA_OFFERING

PROCESS ACTIVATION

PROCESS_ACTIVATION

返回

包含 MESSAGE 列的表,其中显示成功消息。

示例

此示例为分析师创建了一个角色,用于在名为 my_collaboration 的协作中运行分析,并将其分配给用户。

USE ROLE role_that_created_this_collaboration;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'collaborator_analyst_role'
);
GRANT ROLE collaborator_analyst_role to USER alexander_hamilton;

访问要求

您必须使用创建该对象的相同角色,才能在该对象上调用 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE。

  • 对于协作, 任何拥有 CREATE COLLABORATION 或 JOIN COLLABORATION 的角色都可以对任何协作调用 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE。

  • 对于注册表, 只有创建该注册表的角色才能对其调用 GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE。


GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

架构:

ADMIN

向角色授予账户级权限。此过程允许任何使用该角色的用户调用为该权限列出的相关过程。

语法

GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE( '<privilege>', '<account_role_name>' );

实参

'privilege'

要授予此角色的权限。支持以下字符串值:

  • JOIN COLLABORATION:选择使用 时默认使用的角色和仓库。授予运行 COLLABORATION.JOIN 的权限,以及对已联接的协作运行以下过程的权限:

    • ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

    • ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

    • ADMIN.REVOKE_PRIVILEGE_ON_OBJECT_FROM_ROLE

    • COLLABORATION.ADD_TEMPLATE_REQUEST

    • COLLABORATION.APPROVE_UPDATE_REQUEST

    • COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.REMOVE_TEMPLATE

    • COLLABORATION.GET_STATUS

    • COLLABORATION.LEAVE

    • COLLABORATION.LINK_DATA_OFFERING

    • COLLABORATION.LINK_LOCAL_DATA_OFFERING

    • COLLABORATION.PROCESS_ACTIVATION

    • COLLABORATION.REJECT_UPDATE_REQUEST

    • COLLABORATION.REVIEW

    • COLLABORATION.RUN

    • COLLABORATION.TEARDOWN

    • COLLABORATION.UNLINK_DATA_OFFERING

    • COLLABORATION.UNLINK_LOCAL_DATA_OFFERING

    • COLLABORATION.VIEW_ACTIVATIONS

    • COLLABORATION.VIEW_CODE_SPECS

    • COLLABORATION.VIEW_COLLABORATIONS

    • COLLABORATION.VIEW_DATA_OFFERINGS

    • COLLABORATION.VIEW_TEMPLATES

    • COLLABORATION.VIEW_UPDATE_REQUESTS

    • REGISTRY.VIEW_REGISTRIES

    • REGISTRY.VIEW_REGISTERED_CODE_SPECS

    • REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS

    • REGISTRY.VIEW_REGISTERED_TEMPLATES

    此权限需要手动向角色授予以下账户级权限:

    • APPLY ROW ACCESS POLICY ON ACCOUNT

    • CREATE APPLICATION ON ACCOUNT

    • CREATE DATABASE ON ACCOUNT

    • CREATE LISTING ON ACCOUNT

    • CREATE SHARE ON ACCOUNT

    • IMPORT SHARE ON ACCOUNT

    • MANAGE SHARE TARGET ON ACCOUNT

  • CREATE COLLABORATION:选择使用 时默认使用的角色和仓库。授予运行 COLLABORATION.INITIALIZE 的权限,以及对已联接的协作运行 JOIN COLLABORATION 允许的所有过程的权限。需要手动向角色授予以下账户级权限:

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

    • EXECUTE TASK (如果在 INITIALIZE 过程中使用自动联结)

  • VIEW COLLABORATIONS:选择使用 时默认使用的角色和仓库。授予运行 COLLABORATION.VIEW_COLLABORATIONS 的权限。需要手动向角色授予以下权限:

    • IMPORT SHARE ON ACCOUNT

  • REGISTER DATA OFFERING:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.REGISTER_DATA_OFFERING 的权限。任何分析执行器都需要此权限才能联接实施激活的协作。

  • VIEW REGISTERED DATA OFFERINGS:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS 的权限。

  • REGISTER TEMPLATE:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.REGISTER_TEMPLATE 的权限。

  • VIEW REGISTERED TEMPLATES:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.VIEW_REGISTERED_TEMPLATES 的权限。

  • REGISTER CODE SPEC:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.REGISTER_CODE_SPEC 的权限。

  • VIEW REGISTERED CODE SPECS:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.VIEW_REGISTERED_CODE_SPECS 的权限。

  • CREATE REGISTRY:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.CREATE_REGISTRY 和 REGISTRY.VIEW_REGISTRIES 的权限,以及读取您创建的自定义注册表的权限。

  • REVIEW COLLABORATION:选择使用 时默认使用的角色和仓库。授予运行 COLLABORATION.REVIEW 的权限。

  • VIEW REGISTRIES:选择使用 时默认使用的角色和仓库。授予运行 REGISTRY.VIEW_REGISTRIES 的权限。

  • VIEW DCR STATUS:选择使用 时默认使用的角色和仓库。授予查看账户中 Data Clean Room 整体状态的权限。

'account_role_name'

账户级角色的名称。

返回

包含 MESSAGE 列的表,其中显示成功消息。

示例

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE(
  'REGISTER DATA OFFERING',
  'COLLABORATOR_ANALYST_ROLE'
);

访问要求

您需要拥有 ACCOUNTADMIN 角色,或具有 MANAGE GRANTS 全局权限的角色才能运行此过程。