Secure Data Sharingの紹介

Secure Data Sharingを使用すると、アカウントのデータベースで選択したオブジェクトを他のSnowflakeアカウントと共有できます。次のSnowflakeオブジェクトを共有できます。

  • データベース

  • テーブル

  • 動的テーブル

  • 外部テーブル

  • Icebergテーブル

  • セキュアビュー

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

  • セキュアユーザー定義関数(UDFs)

Snowflakeは、 共有 を介したデータベースの共有を可能にします。これは、データプロバイダーによって作成され、データコンシューマーによって「インポート」されます。

重要

アカウント間で共有されるすべてのデータベースオブジェクトは 読み取り専用 です(つまり、テーブルデータの追加または変更を含め、オブジェクトの変更または削除は不可)。

このトピックの内容:

Secure Data Sharingの仕組み

Secure Data Sharingにより、アカウント間で実際のデータのコピー、または転送は されません 。すべての共有は、Snowflakeのサービスレイヤーとメタデータストアを使用します。共有データはコンシューマーアカウントのストレージを占有しないため、コンシューマーの毎月のデータストレージ料金に課金されません。コンシューマーへの課金は、共有データのクエリに使用されるコンピューティングリソース(つまり、仮想ウェアハウス)に対するもの のみ です。

データはコピーまたは交換されないため、プロバイダーは迅速かつ簡単にSecure Data Sharingを設定でき、コンシューマーは共有データにほぼ瞬時にアクセスできます。

  • プロバイダーはアカウントにデータベースの共有を作成し、データベースにある特定のオブジェクトへのアクセスを許可します。これらのデータベースが同じアカウントに属している限り、プロバイダーは複数のデータベースのデータを共有することもできます。その後、1つ以上のアカウントが共有に追加されます。これには、独自のアカウントを含めることができます(複数のSnowflakeアカウントがある場合)。

    詳細については、 共有とは (このトピック内)をご参照ください。

  • コンシューマー側では、共有から 読み取り専用 データベースが作成されます。このデータベースへのアクセスは、Snowflakeがシステム内のすべてのオブジェクトに提供するものと同じ標準のロールベースのアクセス制御を使用して構成できます。

このアーキテクチャにより、Snowflakeは、複数のコンシューマー(組織内を含む)および複数のプロバイダーからの共有データにアクセスできるコンシューマーと、データを共有できるプロバイダーのネットワークを実現できます。

コンシューマーアカウントとデータを共有するプロバイダーアカウントの概要

注釈

Snowflakeのフルアカウントは、共有データの提供と利用の両方を実行できます。Snowflakeは、単一のプロバイダーアカウントから共有データを利用する特別なタイプのアカウントであるサードパーティアカウントもサポートしています。詳細については、 サードパーティアクセス用のリーダーアカウント (このトピック内)をご参照ください。

共有とは

共有は、データベースの共有に必要なすべての情報をカプセル化する、Snowflakeの名前付きオブジェクトです。

データプロバイダーは、次のオプションの いずれかまたは両方 を使用して、Snowflakeオブジェクト(データベース、スキーマ、テーブル、セキュアビューなど)を共有に追加します。

  • オプション1: データベースロールを介してオブジェクトに対する権限を共有に付与する。

  • オプション2: オブジェクトに対する権限を共有に直接付与する。

これらのオプションの詳細については、 データベースオブジェクトの共有方法の選択 をご参照ください。

アカウントを共有に追加して、共有からデータを使用するアカウントを選択します。

(コンシューマーアカウント内で)共有からデータベースが作成されると、コンシューマーアカウントのユーザーは、すべての共有オブジェクトにアクセスできます。

データベース、データベースオブジェクト、共有、アカウントの関係

共有は安全かつ構成可能で、プロバイダーアカウントによって完全に制御されます。

  • 共有に追加された新しいオブジェクトは、すべてのコンシューマーがすぐに利用できるようになり、共有データへのリアルタイムアクセスを提供します。

  • 共有内の既存オブジェクトの更新は、すべてのコンシューマーがすぐに利用できるようになります。

  • 共有(または共有内のオブジェクト)へのアクセスは、いつでも取り消すことができます。

Snowflakeで共有するためのオプション

次のいずれかのオプションを使用して、Snowflakeでデータを共有できます。

  • リスト、共有と追加のメタデータをデータ製品として1つ以上のアカウントに提供、

  • 直接共有、リージョン内の別のアカウントに特定のデータベース(共有)を直接共有、

  • データ交換、アカウントのグループを設定および管理し、そのグループに共有を提供。

直接共有をリストに変換することもできます。手順については、 直接共有をリストに変換する をご参照ください。

詳細については、 Snowflakeでのデータ共有の概要 をご参照ください。

データプロバイダーとコンシューマーの概要

Snowflakeで共有する場合、データを共有するアカウントはプロバイダーと呼ばれ、データの受信者であるアカウントはコンシューマーと呼ばれます。

プロバイダーについて

データプロバイダーは、共有を作成し、それらを他のSnowflakeアカウントが利用できるようにするSnowflakeアカウントです。データプロバイダーとして、データベースを1つ以上のSnowflakeアカウントと共有します。共有するデータベースごとに、Snowflakeは許可を使用して、データベース内の選択したオブジェクトに詳細なアクセス制御を提供(つまり、データベース内にある1つ以上の特定のオブジェクトに対するアクセス権限を許可)します。

共有はいくつでも作成でき、1つの共有にいくつでもアカウントを追加できます。多数のアカウントに共有を提供したい場合は、 リスト または データ交換 を使用することをお勧めします。

プロバイダーとしてデータを共有するためのガイドについては、 Secure Data Sharingの開始 をご参照ください。詳細については、 共有の操作 をご参照ください。

コンシューマーについて

データコンシューマーは、データプロバイダーにより提供される共有から、データベースを作成することにした任意のアカウントです。データコンシューマーとして、共有データベースをアカウントに追加したら、アカウント内にある他のデータベースの場合と同じように、データベース内のオブジェクトにアクセスしてクエリを実行できます。

データプロバイダーから提供された共有はいくつでも使用できますが、共有ごとに作成できるデータベースは1つだけです。

詳細については、 共有データの消費 をご参照ください。

プロバイダーと共有される使用状況メトリック

リストをデータ交換の使用により、または Snowflake Marketplace 上に非公開で提供する場合は、リストのコンシューマーの使用状況に関するさまざまなメトリックと、リストにアクセスするコンシューマーアカウントに関するメトリックにアクセスできます。

リストの使用状況データの詳細については、 リストの使用状況のモニター をご参照ください。データ交換で共有されたリストの使用状況データは、共有されたSnowflakeデータベースの Data Sharingの更新 スキーマに含まれるビューでのみ使用できます。

サードパーティアクセス用のリーダーアカウント

データ共有は、Snowflakeアカウント間でのみサポートされます。データプロバイダーとして、まだSnowflakeアカウントを持っていない、またはSnowflakeのライセンスを取得する準備ができていないコンシューマーとデータを共有したい場合があります。

このようなコンシューマーとのデータ共有を容易にするために、リーダーアカウントを作成できます。リーダーアカウント(以前の呼称は「読み取り専用アカウント」)は、コンシューマーがSnowflakeのカスタマーになることを必要とせずに、迅速、簡単、費用対効果の高い方法でデータを共有します。

各リーダーアカウントは、それを作成したプロバイダーアカウントに属します。プロバイダーとして、 共有 を使用して、データベースをリーダーアカウントと共有します。ただし、リーダーアカウントは、それを作成したプロバイダーアカウントのデータのみを使用できます。次の図をご参照ください。

データ共有リーダーアカウントの概要

リーダーアカウントのユーザーは、リーダーアカウントと共有されているデータをクエリできますが、フルアカウントで許可されているデータのロード、挿入、更新、同様のデータ操作などの DML タスクを実行することはできません。

詳細については、 リーダーアカウントの管理 をご参照ください。