教程:创建和管理组织列表¶
Snowflake 中的组织列表可让您在组织内安全地共享数据产品,使内部团队更容易发现和使用可信资源。作为提供商,您可以创建列表,集中访问数据集、本地应用程序和其他资源,简化团队间的数据共享和协作。本指南将帮助您了解有效创建和管理组织列表的步骤和要求,确保您的数据产品可以访问,同时控制谁可以查看和使用这些产品。
开始之前,请确保您拥有必要权限,可以创建和管理组织列表。
在本教程中,我们会创建一个自定义角色 (ORG_LISTING_PROVIDER) 来代表组织管理列表。
创建一个角色来管理组织列表¶
切换到 ORGADMIN 角色(或 ACCOUNTADMIN)以创建新角色并添加一个或多个用户。这些用户将成为组织列表的管理员。然后,GRANT 新角色所需的权限来创建和共享组织列表。
USE ROLE ACCOUNTADMIN;
CREATE ROLE ORG_LISTING_PROVIDER;
GRANT ROLE ORG_LISTING_PROVIDER TO USER <user_name>;
GRANT CREATE SHARE ON ACCOUNT TO ROLE ORG_LISTING_PROVIDER;
创建组织列表¶
从共享中创建组织列表,所需属性包含在 YAML 中(以 $$ 分隔符输入)。
此示例与组织中的所有账户共享列表:
USE ROLE ORG_LISTING_PROVIDER;
CREATE ORGANIZATION LISTING ORG_LISTING
SHARE ORG_SHARE AS
$$
title : 'My title'
organization_profile: INTERNAL
organization_targets:
access:
- all_accounts : true
locations:
access_regions:
- name: "ALL"
auto_fulfillment:
refresh_type: "SUB_DATABASE"
refresh_schedule: "10 MINUTE"
$$;
更改组织列表¶
通过在 YAML 中包含任何更改或附加属性来更改组织列表。
此示例仅与一个账户共享列表。它还为列表添加了描述:
USE ROLE ORG_LISTING_PROVIDER;
ALTER LISTING ORG_LISTING
AS
$$
title : 'My title'
organization_profile: INTERNAL
organization_targets:
access:
- all_accounts : false
locations:
access_regions:
- name: "ALL"
auto_fulfillment:
refresh_type: "SUB_DATABASE"
refresh_schedule: "10 MINUTE"
$$;
查看一系列组织列表¶
要查看组织列表,请运行以下命令:
SHOW LISTINGS;
DESCRIBE LISTING ORG_LISTING;
(可选)为组织列表添加自动履行¶
要启用组织列表的自动履行,请运行以下命令:
重要
在您运行命令以启用自动履行之前,请检查它是否已启用,并注意当前设置。如果已开启,您无需运行该命令。
USE ROLE ACCOUNTADMIN;
GRANT MANAGE LISTING AUTO FULFILLMENT ON ACCOUNT TO ROLE ORG_LISTING_PROVIDER;
USE ROLE ORG_LISTING_PROVIDER;
SHOW ORGANIZATION ACCOUNTS;
SELECT SYSTEM$IS_GLOBAL_DATA_SHARING_ENABLED_FOR_ACCOUNT('<ORGACCOUNT>');
CALL SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT('<ORGACCOUNT>');
教程后清理¶
要删除您在本教程中创建的任何不需要的对象,请根据需要运行以下一个或多个命令:
重要
如果在您运行最后一步时启用了自动履行,DO NOT 在您清理查询后禁用它。这样做将停止您账户上的所有自动履行!
DROP LISTING <organizational_listing_name>;
DROP SHARE org_listing1_share1;
DROP DATABASE org_listing_db1;
--CALL SYSTEM$DISABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT('ORGACCOUNT');
DROP ROLE ORG_LISTING_PROVIDER;