連絡先の利用

連絡先はスキーマレベルのオブジェクトで、ユーザーまたはユーザーグループとの通信方法の詳細が含まれています。例えば、 data_stewards という連絡先にはEメール配信リストが含まれ、 support_department という連絡先には部署のウェブサイトのURLが含まれるかもしれません。

連絡先は、データベースやテーブルなどの他のオブジェクトに関連付けることができ、ユーザーはオブジェクトに関するサポートの連絡先を知ることができます。例えば、あるテーブルにアクセスするための連絡先が書かれているかもしれません。連絡先の目的は連絡先の特性ではなく、連絡先と特定のオブジェクトとの関連付けです。例えば、同じ連絡先が、あるテーブルの一般的なサポートを行いながら、別のテーブルのアクセス承認を行うことがあります。

各連絡先の目的がオブジェクトに固有である限り、オブジェクトは複数の連絡先を持つことができます。例えば、テーブルには、テーブルへのアクセスを付与する連絡先と、テーブルの一般的なサポートを提供する連絡先があります。ユーザーがオブジェクトに関連付けられている連絡先を表示すると、それぞれの連絡先の目的と連絡方法が表示されます。これにより、特定の理由に対する連絡先と連絡方法がわかります。

データユーザーは、 Snowsight の Data メニューを使用してデータベース、スキーマ、およびテーブルのようなオブジェクトを操作すると、これらの連絡先が表示されます。

連絡先の継承と無効化

連絡先は子孫オブジェクトに継承されます。連絡先を他のオブジェクトの親であるオブジェクトに関連付けると、子、孫などが連絡先を継承します。例えば、連絡先をスキーマに関連付けると、スキーマ内のすべてのテーブルがデフォルトで連絡先を継承します。

連絡先の継承は、子オブジェクトが同じ目的の連絡先を持っている場合は無効化されます。例えば、誰かが次の2つの連絡先を、テーブル t1 を含む ac_sch スキーマに関連付けたとします。

お問い合わせ

目的

data_stewards

スチュワード

business_unit1

承認者

ここで、誰かがアクセス承認のために、連絡先 finance_deptt1 と関連付けたとします。 t1 に関連付けられる連絡先は以下の通りです。

お問い合わせ

目的

data_stewards

スチュワード

finance_dept

承認者

ac_schema のアクセス承認を担当する連絡先は、 t1 に直接関連付けられる連絡先に置き換えられましたが、 t1 は引き続きスキーマから data_stewards の連絡先を継承しています。

サポートされているオブジェクト

連絡先は以下のオブジェクトと関連付けることができます。

  • データベース

  • スキーマ

  • テーブル

  • Apache Iceberg™ テーブル

  • 外部テーブル

  • 動的テーブル

  • イベントテーブル

  • ビュー

  • マテリアライズドビュー

  • タスク(SQLのみ)

連絡先の作成

連絡先を作成する際、連絡先の名前と連絡先との連絡方法を指定します。連絡方法には以下のような方法があります。

  • ウェブサイトのURL。

  • Eメールアドレス、配信リストでも構いません。

  • Snowflakeユーザーのリスト。

Snowsight またはSQLを使用して連絡先を作成できます。すべての連絡先を専用のスキーマで作成すると便利です。

Snowsight:
  1. Snowsight にサインインします。

  2. Data を選択します。

  3. 連絡先を作成するスキーマに移動します。

  4. Create » Contact を選択します。

  5. 連絡先の名前を指定します。

  6. 連絡方法を選択し、オブジェクトに関するサポートを得るためデータユーザーが連絡をとることができるEメールアドレス、ユーザー、またはURLを指定します。

  7. 連絡先をオブジェクトに関連付ける権限を持つロールを選択します。これらのロールには、連絡先に関する権限(APPLY)が付与されます。

  8. Create を選択します。

SQL:

CREATE CONTACT コマンドを実行して、新しい連絡先を作成できます。

ウェブサイトからアクセスできるサポートチームの連絡先を作成します。

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

財務チームの連絡先をEメールアドレスで作成し、配信リストとして機能させます。

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

Snowflakeユーザーオブジェクト名で識別されるデータベース管理者の連絡先を作成します。

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

連絡先とオブジェクトの関連付け

連絡先をオブジェクトに関連付ける場合、連絡先の名前と、連絡先とオブジェクトの関連付けの目的を指定します。ユーザーは、オブジェクトに関連付けられたすべての連絡先を表示すると、各連絡先の目的に基づいて誰と連絡を取るかを決定できるようになります。

連絡先をオブジェクトに関連付ける目的は、以下のいずれかです。

目的

説明

SQL 値

スチュワード

データの正確性、一貫性、信頼性に関する情報を入力します。

STEWARD

サポート

データセットに関する技術サポートを入力します。

SUPPORT

承認者

データへのアクセスリクエストを承認または拒否します。

ACCCESS_APPROVAL

既存のオブジェクトを変更したり、新しいオブジェクトを作成する際に、連絡先を関連付け、その目的を定義することができます。

連絡先を既存のオブジェクトに関連付けます。

Snowsight:
  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. サポート対象のオブジェクト のいずれかに移動します。

  4. Details タブを選択します。

  5. Assigned Contacts セクションを探し、 Edit アイコンを選択します。

  6. 1つまたは複数の目的に対して連絡先を選択します。例えば、 Approver ドロップダウンリストから連絡先を選択すると、データユーザーはオブジェクトへのアクセスが必要なときにその連絡先に連絡します。

  7. Save を選択します。

SQL:

既存のオブジェクトに対して ALTER ... SET CONTACT コマンドを使用すると、そのオブジェクトに連絡先を関連付け、連絡先の目的を指定することができます。連絡先を関連付ける構文は、連絡先に関連付けることができるすべてのオブジェクトに共通です。

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

purpose は、連絡先とオブジェクトの関係を記述する 定義済みの目的 のいずれかでなければなりません。ユーザーがオブジェクトの連絡先を表示するとき、どの連絡先で連絡を取るのかを判断するために使用します。

finance_dept の連絡先をテーブルと関連付けることで、ユーザーがテーブルへのアクセスが必要なときに誰と連絡を取ればよいかを知ることができます。

ALTER TABLE t1 SET CONTACT ACCESS_APPROVAL = finance_dept;
Copy

internal_support の連絡先をデータベースと関連付けることで、ユーザーがデータベース内のテーブルに関する一般的なサポートが必要な場合に、誰に連絡すればよいかを知ることができます。

ALTER DATABASE my_db SET CONTACT SUPPORT = internal_support;
Copy

data_stewards の連絡先をスキーマに関連付けることで、ユーザーはスキーマ内のテーブルのオブジェクトタグに関する連絡先を知ることができます。

ALTER SCHEMA sch1 SET CONTACT STEWARD = data_stewards;
Copy

新規オブジェクト作成時の連絡先の関連付け

CREATE ... WITH CONTACT コマンドにより、連絡先を新しいオブジェクトに関連付けることができます。WITH CONTACT 句の構文は、連絡先に関連付けられるすべてのオブジェクトで同じです。

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

purpose は、連絡先とオブジェクトの関係を記述する 定義済みの目的 のいずれかでなければなりません。ユーザーがオブジェクトの連絡先を表示するとき、どの連絡先で連絡を取るのかを判断するために使用します。

テーブルやテーブルのようなオブジェクトの場合、WITH CONTACT 句は列定義の後に指定します。

finance_dept の連絡先を新しいテーブルに関連付けると、ユーザーはそのテーブルにアクセスが必要な場合に、誰に連絡すればよいかを知ることができます。

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

internal_support の連絡先を新しいデータベースに関連付けると、ユーザーはデータベース内のテーブルに関する一般的なサポートが必要な場合に、誰に連絡すればよいかを知ることができます。

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

data_stewards の連絡先を新しいスキーマに関連付けると、ユーザーはスキーマ内のテーブルのオブジェクトタグに関する連絡先を知ることができます。また、 finance_dept の連絡先を関連付けると、ユーザーはアクセスが必要な場合に誰に連絡をすればよいかを知ることができます。

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

オブジェクトからの連絡先の切り離し

Snowsight:
  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. オブジェクトに移動します。

  4. Details タブを選択します。

  5. Assigned Contacts セクションを探し、 Edit アイコンを選択します。

  6. 切り離したい連絡先がある目的(例えば、 Approver)を見つけ、ドロップダウンリストを使用して None を選択します。

  7. Save を選択します。

SQL:

ALTER ... UNSET CONTACT コマンドにより、オブジェクトから連絡先を切り離すことができます。連絡先を切り離す構文は、連絡先に関連付けられるすべてのオブジェクトで同じです。

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

切り離す連絡先の識別は、連絡先名ではなく、連絡先とオブジェクトの関連付けの目的を指定することで行います。連絡先を切り離すために指定可能な目的のリストについては、 定義済みの目的 をご覧ください。

例えば、テーブルの STEWARD として追加された連絡先を切り離すには、次を実行します。

ALTER TABLE t1 UNSET CONTACT STEWARD;
Copy

オブジェクトの連絡先の表示

Snowsight:

Snowsight でオブジェクトに移動すると、そのオブジェクトに関連付けられている連絡先が Details タブに表示されます。

SQL:

オブジェクトに少なくとも1つの権限を持つユーザーは、 GET_CONTACTS テーブル関数を使用して、そのオブジェクトに関連付けられている連絡先を表示できます。この関数は、オブジェクトに関連付けられた各連絡先の行を返します。

例えば、テーブル t1 の連絡先を表示するには、少なくとも1つの権限を持つユーザーにより以下を実行します。

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

各連絡先について、関数で以下の一覧を表示します。

  • 連絡先の目的。

  • 連絡先との連絡方法。

  • 連絡先が直接オブジェクトに関連付けられているか、親オブジェクトを継承しているか。

連絡先と関連付けの管理

Snowsight:

スキーマで作成された連絡先一覧を表示し、特定の連絡先の詳細を掘り下げます。

  1. Snowsight にサインインします。

  2. Data » Databases メニューを使用してスキーマに移動します。

  3. Contacts タブを選択します。

  4. 連絡先に関連付けられているオブジェクトなど、連絡先の詳細を表示したい場合は、連絡先を選択します。

SQL:

ACCOUNT_USAGE スキーマでは、連絡先の管理に役立つ以下のビューを表示できます。

アクセス制御権限

ユーザーが連絡先を扱うために必要な権限を以下にまとめます。

タスク

必要な権限

連絡先の作成

次の両方:

  • CREATE CONTACT(スキーマ)

  • USAGE(スキーマとデータベース)

連絡先とオブジェクトの関連付け

以下のいずれか:

  • アカウントに対する APPLY CONTACT

  • APPLY権限(連絡先) OWNERSHIP (オブジェクト)

オブジェクトの連絡先のリスト

すべての権限(オブジェクト)

オブジェクトから連絡先を切り離す

以下のいずれか:

  • アカウントに対する APPLY CONTACT

  • APPLY権限(連絡先) OWNERSHIP (オブジェクト)

既存の連絡先の変更

以下のいずれか:

  • OWNERSHIP(連絡先)

  • MODIFY(連絡先)

連絡先の削除

OWNERSHIP(連絡先)