Utilisation des contacts

Les contacts sont des objets de niveau schéma qui contiennent des détails sur la manière de communiquer avec un utilisateur ou un groupe d’utilisateurs. Par exemple, un contact nommé data_stewards peut inclure une liste de distribution par courrier électronique, tandis qu’un autre nommé support_department peut inclure l’URL du site web du département.

Les contacts peuvent être associés à d’autres objets tels que les bases de données et les tables afin que les utilisateurs sachent à qui s’adresser pour obtenir de l’aide sur l’objet en question. Par exemple, il peut y avoir un contact sur une table qui décrit à qui s’adresser pour obtenir l’accès à la table. L’objet du contact n’est pas une propriété du contact, mais plutôt l’association entre un contact et un objet spécifique. Par exemple, le même contact peut fournir un soutien général pour une table tout en approuvant l’accès à une autre table.

Un objet peut avoir plus d’un contact tant que l’objectif de chaque contact est unique pour l’objet. Par exemple, une table peut avoir un contact qui accorde l’accès à la table et un autre contact qui fournit une assistance générale à la table. Lorsqu’un utilisateur voit les contacts associés à un objet, il voit l’objet de chaque contact ainsi qu’une méthode de communication, de sorte qu’il sait avec qui communiquer pour une raison spécifique et comment le joindre.

Les utilisateurs de données voient ces contacts lorsqu’ils utilisent le menu Data dans Snowsight pour naviguer dans leurs bases de données, schémas et objets de type table.

Héritage et surcharge des contacts

Les contacts sont hérités par les objets descendants. Si vous associez un contact à un objet qui est le parent d’un autre objet, l’objet enfant, le petit-enfant, et ainsi de suite, hériteront du contact. Par exemple, si vous associez un contact à un schéma, toutes les tables du schéma héritent par défaut du contact.

L’héritage d’un contact est supplanté si un objet enfant possède un contact ayant le même objet. Par exemple, supposons que quelqu’un associe les deux contacts suivants au schéma ac_sch, qui contient la table t1:

Contact

But

data_stewards

Steward

business_unit1

Approbateur

Supposons maintenant que quelqu’un associe le contact finance_dept à t1 aux fins de l’approbation de l’accès. Les contacts associés à t1 sont désormais les suivants :

Contact

But

data_stewards

Steward

finance_dept

Approbateur

Le contact responsable de l’approbation de l’accès à ac_schema a été remplacé par un contact directement associé à t1, mais t1 continue d’hériter du contact data_stewards du schéma.

Objets pris en charge

Vous pouvez associer un contact aux objets suivants :

  • Base de données

  • Schéma

  • Table

  • Table Apache Iceberg™

  • Table externe

  • Table dynamique

  • Table des événements

  • Vue

  • Vue matérialisée

  • Tâche (SQL uniquement)

Créer un contact

Lorsque vous créez un contact, vous indiquez le nom du contact et la manière dont quelqu’un doit communiquer avec lui. Les méthodes de communication sont les suivantes :

  • L’URL d’un site Web.

  • Un e-mail, qui peut être une liste de distribution.

  • Une liste des utilisateurs de Snowflake.

Vous pouvez créer un contact en utilisant Snowsight ou SQL. Il peut être utile de créer tous les contacts dans un schéma dédié.

Snowsight:
  1. Connectez-vous à Snowsight.

  2. Sélectionnez Data.

  3. Naviguez jusqu’au schéma dans lequel vous souhaitez créer le contact.

  4. Sélectionnez Create » Contact.

  5. Indiquez le nom du contact.

  6. Choisissez une méthode de communication, puis indiquez l’e-mail, les utilisateurs ou l’URL que les utilisateurs de données contacteront pour obtenir de l’aide sur un objet.

  7. Sélectionnez les rôles qui auront la possibilité d’associer le contact à des objets. Ces rôles bénéficient du privilège APPLY sur le contact.

  8. Sélectionnez Create.

SQL:

Vous pouvez exécuter la commande CREATE CONTACT pour créer un nouveau contact.

Exemples

Créez un contact pour l’équipe d’assistance que vous pouvez joindre par l’intermédiaire de leur site web.

CREATE CONTACT support_dept URL = 'http://internalsupport.example.com';
Copy

Créez un contact pour l’équipe financière qui est joignable via une adresse électronique, qui fait office de liste de distribution.

CREATE CONTACT finance_dept EMAIL_DISTRIBUTION_LIST = 'fd_dl@example.com';
Copy

Créez un contact pour les administrateurs de bases de données, identifiés par le nom de leurs objets utilisateurs Snowflake.

CREATE CONTACT db_admins USERS = (ex_admin1, ex_admin2);
Copy

Associer un contact à un objet

Lorsque vous associez un contact à un objet, vous spécifiez le nom du contact ainsi que l’objet de l’association entre le contact et l’objet. Lorsque les utilisateurs voient tous les contacts associés à un objet, ils peuvent décider avec qui communiquer en fonction de l’objet de chaque contact.

L’association d’un contact à un objet peut avoir l’une des finalités suivantes :

But

Description

Valeur SQL

Steward

Fournit des informations sur l’exactitude, la cohérence et la fiabilité des données.

STEWARD

Assistance

Fournit une assistance technique relative à un ensemble de données.

SUPPORT

Approbateur

Approuve ou rejette les requêtes d’accès aux données.

ACCCESS_APPROVAL

Vous pouvez associer un contact et définir son objectif lors de la modification d’un objet existant ou de la création d’un nouvel objet.

Associer un contact à un objet existant

Snowsight:
  1. Connectez-vous à Snowsight.

  2. Sélectionnez Data » Databases.

  3. Naviguez vers l’un des objets pris en charge par <label-contacts_supported_objects>.

  4. Sélectionnez l’onglet Details.

  5. Trouvez la section Assigned Contacts et sélectionnez l’icône Edit.

  6. Sélectionnez un contact pour un ou plusieurs objectifs. Par exemple, si vous sélectionnez un contact dans la liste déroulante Approver, les utilisateurs de données s’adresseront à ce contact lorsqu’ils auront besoin d’accéder à l’objet.

  7. Sélectionnez Save.

SQL:

La commande ALTER. .. SET CONTACT pour un objet existant vous permet d’associer un contact et de spécifier l’objet du contact pour cet objet. La syntaxe pour associer le contact est la même pour tous les objets qui peuvent être associés à un contact :

ALTER <object_type> <object_name>
  SET CONTACT <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ]
Copy

Le purpose doit être l’un des objectifs prédéfinis, qui décrivent la relation du contact avec l’objet. Lorsque les utilisateurs voient les contacts d’un objet, ils utilisent l’objet pour déterminer avec quels contacts communiquer.

Exemples

Associez le contact finance_dept à une table afin que les utilisateurs sachent avec qui communiquer lorsqu’ils ont besoin d’accéder à la table :

ALTER TABLE t1 SET CONTACT ACCESS_APPROVAL = finance_dept;
Copy

Associez le contact internal_support à une base de données afin que les utilisateurs sachent à qui s’adresser lorsqu’ils ont besoin d’une assistance générale pour une table de la base de données :

ALTER DATABASE my_db SET CONTACT SUPPORT = internal_support;
Copy

Associez le contact data_stewards à un schéma afin que les utilisateurs sachent avec qui communiquer en ce qui concerne la balise d’objet des tables du schéma :

ALTER SCHEMA sch1 SET CONTACT STEWARD = data_stewards;
Copy

Associer un contact lors de la création d’un nouvel objet

La commande CREATE … WITH CONTACT vous permet d’associer un contact à un nouvel objet. La syntaxe de la clause WITH CONTACT est la même pour tous les objets pouvant être associés à un contact :

WITH CONTACT ( <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ] )
Copy

Le purpose doit être l’un des objectifs prédéfinis, qui décrivent la relation du contact avec l’objet. Lorsque les utilisateurs voient les contacts d’un objet, ils utilisent l’objet pour déterminer avec quels contacts communiquer.

Pour les tables et les objets de type table, la clause WITH CONTACT est spécifiée après la définition des colonnes.

Exemples

Associez le contact finance_dept à une nouvelle table afin que les utilisateurs sachent avec qui communiquer lorsqu’ils ont besoin d’accéder à la table :

CREATE TABLE t1 (col1 VARCHAR, col2 INT) WITH CONTACT (ACCESS_APPROVAL = finance_dept);
Copy

Associez le contact internal_support à une nouvelle base de données afin que les utilisateurs sachent à qui s’adresser lorsqu’ils ont besoin d’une assistance générale pour une table de la base de données :

CREATE DATABASE my_db WITH CONTACT (SUPPORT = internal_support);
Copy

Associez le contact data_stewards à un nouveau schéma afin que les utilisateurs sachent avec qui communiquer en ce qui concerne le balise objet des tables du schéma et le contact finance_dept afin que les utilisateurs sachent avec qui communiquer lorsqu’ils ont besoin d’un accès :

CREATE SCHEMA sch1 WITH CONTACT (STEWARD = data_stewards, ACCESS_APPROVAL = finance_dept);
Copy

Détachez un contact d’un objet

Snowsight:
  1. Connectez-vous à Snowsight.

  2. Sélectionnez Data » Databases.

  3. Naviguez jusqu’à l’objet.

  4. Sélectionnez l’onglet Details.

  5. Trouvez la section Assigned Contacts et sélectionnez l’icône Edit.

  6. Trouvez l’annonce (par exemple, Approver) qui contient le contact que vous souhaitez détacher, et utilisez la liste déroulante pour sélectionner None.

  7. Sélectionnez Save.

SQL:

Les commandes ALTER … UNSET CONTACT vous permettent de détacher un contact d’un objet. La syntaxe pour détacher le contact est la même pour tous les objets qui peuvent être associés à un contact :

ALTER <object_type> <object_name>
  UNSET CONTACT <purpose>
Copy

Vous identifiez le contact à détacher en précisant l’objet de l’association entre le contact et l’objet, et non par le nom du contact. Pour obtenir la liste des finalités possibles qui peuvent être spécifiées pour détacher un contact, voir finalités prédéfinies.

Par exemple, pour détacher le contact qui a été ajouté en tant que STEWARD d’une table, exécutez :

ALTER TABLE t1 UNSET CONTACT STEWARD;
Copy

Vue des contacts pour un objet

Snowsight:

Lorsque vous naviguez vers un objet dans Snowsight, les contacts associés à l’objet apparaissent dans l’onglet Details.

SQL:

Les utilisateurs disposant d’au moins un privilège sur un objet peuvent utiliser la fonction de table GET_CONTACTS pour voir les contacts associés à cet objet. La fonction renvoie une ligne pour chaque contact associé à l’objet.

Par exemple, pour établir la liste des contacts de la table t1, un utilisateur disposant d’au moins un privilège peut exécuter ce qui suit :

SELECT *
  FROM TABLE(SNOWFLAKE.CORE.GET_CONTACTS('t1', 'TABLE'));
Copy

Pour chaque contact, la fonction annonce les éléments suivants :

  • Objet du contact.

  • Méthode de communication pour le contact.

  • Indique si le contact a été associé à l’objet directement ou s’il a été hérité d’un objet parent.

Les contacts des gouvernants et leurs associations

Snowsight:

Pour établir la liste des contacts créés dans un schéma et accéder aux détails d’un contact spécifique :

  1. Connectez-vous à Snowsight.

  2. Utilisez le menu Data » Databases pour naviguer vers le schéma.

  3. Sélectionnez l’onglet Contacts.

  4. Sélectionnez un contact si vous souhaitez en voir les détails, y compris les objets auxquels il est associé.

SQL:

Le schéma ACCOUNT_USAGE propose les vues suivantes pour faciliter la gestion des contacts :

Privilèges de contrôle d’accès

Les paragraphes suivants résument les privilèges dont un utilisateur a besoin pour travailler avec des contacts.

Tâche

Privilèges requis

Créer un contact

Les deux sont valides :

  • CREATECONTACT sur le schéma

  • USAGE sur le schéma et la base de données

Associer un contact à un objet

L’un ou l’autre des éléments suivants :

  • APPLY CONTACT sur le compte

  • APPLY privilège sur le contact et OWNERSHIP sur l’objet

Liste des contacts d’un objet

Tout privilège sur l’objet.

Détacher un contact d’un objet

L’un ou l’autre des éléments suivants :

  • APPLY CONTACT sur le compte

  • APPLY privilège sur le contact et OWNERSHIP sur l’objet

Modifier un contact existant

L’un ou l’autre des éléments suivants :

  • OWNERSHIP sur le contact

  • MODIFY sur le contact

Déposer un contact

OWNERSHIP sur le contact