Tutoriel : Créer et gérer une annonce d’organisation

Les annonces d’organisation dans Snowflake vous permettent de partager des produits de données en toute sécurité au sein de votre organisation, facilitant ainsi la découverte et l’utilisation de ressources fiables par les équipes internes. En tant que fournisseur, vous pouvez créer des annonces qui centralisent l’accès aux ensembles de données, aux Native Apps et à d’autres ressources, simplifiant ainsi le partage de données et la collaboration au sein de vos équipes. Ce guide vous aidera à comprendre les étapes et les exigences pour créer et gérer efficacement les annonces d’organisation, en veillant à ce que vos produits de données soient accessibles tout en maintenant le contrôle sur les personnes qui peuvent les voir et les utiliser.

Avant de commencer, assurez-vous que vous disposez des privilèges nécessaires pour créer et gérer des annonces d’organisation.

Dans ce tutoriel, nous créons un rôle personnalisé (ORG_LISTING_PROVIDER) pour gérer les annonces au nom de l’organisation.

Créer un rôle pour gérer les annonces d’organisation

Endossez le rôle ORGADMIN (ou ACCOUNTADMIN) pour créer un nouveau rôle et ajouter un ou plusieurs utilisateurs. Ces utilisateurs seront les administrateurs des annonces d’organisation. Ensuite, GRANT au nouveau rôle les privilèges nécessaires pour créer et partager des annonces d’organisation.

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

Créer un partage et lui accorder un droit d’utilisation

Endossez le rôle personnalisé ORG_LISTING_PROVIDER que vous venez de créer pour créer un partage et en autoriser l’utilisation.

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

Créer une annonce organisationnelle

Créez une annonce d’organisation à partir du partage avec les attributs requis inclus dans YAML (saisis dans les délimiteurs $$).

Cet exemple partage l’annonce avec tous les comptes de l’organisation :

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

Modifier une annonce d’organisation

Modifiez les annonces d’organisation en incluant toute modification ou tout attribut supplémentaire dans le YAML.

Cet exemple partage l’annonce avec un seul compte. Il ajoute également une description à l’annonce :

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

Voir la liste des annonces de l’organisation

Pour voir les annonces d’organisation, exécutez la commande suivante :

SHOW LISTINGS;
DESCRIBE LISTING ORG_LISTING;
Copy

(Facultatif) Ajouter l’exécution automatique pour les annonces d’organisation

Pour activer l’exécution automatique pour vos annonces d’organisation, exécutez les commandes suivantes :

Important

Avant d’exécuter la commande d’activation de l’exécution automatique, vérifiez si elle est déjà activée et notez les paramètres actuels. S’il est déjà activé, vous n’avez pas besoin d’exécuter la commande.

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

Nettoyer après le tutoriel

Pour supprimer les objets indésirables que vous avez créés au cours de ce tutoriel, exécutez une ou plusieurs des commandes suivantes, le cas échéant :

Important

Si l’exécution automatique a été activée lors de l’exécution de la dernière étape, DO NOT désactivez pas lorsque vous nettoyez le site après la requête. Ce faisant, vous arrêterez toute exécution automatique sur votre compte !

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