教程:创建和管理组织列表

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;
Copy

创建一个共享并授予使用权限

切换到您刚刚创建的 ORG_LISTING_PROVIDER 自定义角色,以创建共享并授予对共享的使用权限。

USE ROLE ORG_LISTING_PROVIDER;
CREATE OR REPLACE DATABASE DEVORGDB;
USE DATABASE DEVORGDB;
CREATE SHARE ORG_SHARE SECURE_OBJECTS_ONLY=FALSE;
GRANT USAGE ON DATABASE DEVORGDB TO SHARE ORG_SHARE;
GRANT USAGE ON SCHEMA PUBLIC TO SHARE ORG_SHARE;
CREATE OR REPLACE TABLE TUTORIAL_TABLE ( item_id INT, item_name STRING );
GRANT SELECT ON TABLE DEVORGDB.PUBLIC.TUTORIAL_TABLE TO SHARE ORG_SHARE;
INSERT INTO TUTORIAL_TABLE (item_id, item_name) VALUES (1,'Tutorial table');
Copy

创建组织列表

从共享中创建组织列表,所需属性包含在 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"
$$;
Copy

更改组织列表

通过在 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"
$$;
Copy

查看一系列组织列表

要查看组织列表,请运行以下命令:

SHOW LISTINGS;
DESCRIBE LISTING ORG_LISTING;
Copy

(可选)为组织列表添加自动履行

要启用组织列表的自动履行,请运行以下命令:

重要

在您运行命令以启用自动履行之前,请检查它是否已启用,并注意当前设置。如果已开启,您无需运行该命令。

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>');
Copy

教程后清理

要删除您在本教程中创建的任何不需要的对象,请根据需要运行以下一个或多个命令:

重要

如果在您运行最后一步时启用了自动履行,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;
Copy
语言: 中文