チュートリアル: 組織リストの作成と管理

Snowflakeの組織リストを使用すると、組織内でデータ製品を安全に共有できるため、社内のチームが信頼できるリソースを簡単に見つけて使用できるようになります。プロバイダーとして、データセット、Native Apps、その他のリソースへのアクセスを一元化するリストを作成し、チーム全体でのデータ共有とコラボレーションを簡素化できます。このガイドでは、組織リストを効果的に作成および管理するための手順と要件を理解し、データ製品へのアクセスを確保しながら、誰が閲覧および使用できるかを制御できるようにします。

始める前に、組織リストを作成および管理するために必要な権限を持っていることを確認してください。

このチュートリアルでは、組織に代わってリストを管理するカスタムロール(ORG_LISTING_PROVIDER)を作成します。

組織リストを管理するロールの作成

新しいロールを作成し、1人以上のユーザーを追加するには、 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 に変更または追加属性を含めることで、組織リストを変更します。

この例では、リスト1つのアカウントのみを共有しています。また、リストに説明が追加されます。

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

チュートリアル後のクリーンアップ

このチュートリアルで作成した不要なオブジェクトをドロップするには、必要に応じて以下のコマンドを1つ以上実行してください。

重要

最後のステップを実行したときに自動フルフィルメントが有効になっていた場合は、、クエリ後のクリーンアップ時に無効に 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