Secure Data Sharingの紹介

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

  • テーブル

  • 外部テーブル

  • 安全なビュー

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

  • 安全な UDFs

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

重要

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

このトピックの内容:

Secure Data Sharingの仕組み

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

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

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

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

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

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

Overview of provider accounts sharing data with consumer accounts

注釈

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

共有とは

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

  • 共有するオブジェクトを含むデータベースおよびスキーマへのアクセスを許可する権限。

  • データベースにある特定のオブジェクトへのアクセスを許可する権限。

  • データベースとそのオブジェクトが共有されるコンシューマーアカウント。

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

Relationship between databases, database objects, shares, and accounts

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

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

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

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

プロバイダー

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

Snowflakeは、作成できる共有の数や共有に追加できるアカウントの数に厳しい制限を設けてはいません。

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

コンシューマー

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

Snowflakeは、データプロバイダーから利用できる共有の数に厳しい制限を設けてはいません。ただし、共有ごとに1つのデータベースしか作成できません。

詳細については、 データコンシューマー をご参照ください。

サードパーティアカウント

リーダーアカウント

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

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

各リーダーアカウントは、それを作成したプロバイダーアカウントに属します。標準のコンシューマーアカウントと同様に、プロバイダーアカウントは 共有 を使用して、データベースをリーダーアカウントと共有します。ただし、リーダーアカウントは、それを作成したプロバイダーアカウントのデータのみを使用できます。

Overview of data sharing reader accounts

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

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