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つ以上のアカウントに提供、
直接共有、リージョン内の別のアカウントに特定のデータベース(共有)を直接共有、
データ交換、アカウントのグループを設定および管理し、そのグループに共有を提供。
直接共有をリストに変換することもできます。手順については、 直接共有をリストに変換する をご参照ください。
詳細については、 Snowflakeでのデータ共有の概要 をご参照ください。
データプロバイダーとコンシューマーの概要¶
Snowflakeで共有する場合、データを共有するアカウントはプロバイダーと呼ばれ、データの受信者であるアカウントはコンシューマーと呼ばれます。
プロバイダーについて¶
データプロバイダーは、共有を作成し、それらを他のSnowflakeアカウントが利用できるようにするSnowflakeアカウントです。データプロバイダーとして、データベースを1つ以上のSnowflakeアカウントと共有します。共有するデータベースごとに、Snowflakeは許可を使用して、データベース内の選択したオブジェクトに詳細なアクセス制御を提供(つまり、データベース内にある1つ以上の特定のオブジェクトに対するアクセス権限を許可)します。
共有はいくつでも作成でき、1つの共有にいくつでもアカウントを追加できます。多数のアカウントに共有を提供したい場合は、 リスト または データ交換 を使用することをお勧めします。
プロバイダーとしてデータを共有するためのガイドについては、 Secure Data Sharingの開始 をご参照ください。詳細については、 共有の操作 をご参照ください。
コンシューマーについて¶
データコンシューマーは、データプロバイダーにより提供される共有から、データベースを作成することにした任意のアカウントです。データコンシューマーとして、共有データベースをアカウントに追加したら、アカウント内にある他のデータベースの場合と同じように、データベース内のオブジェクトにアクセスしてクエリを実行できます。
データプロバイダーから提供された共有はいくつでも使用できますが、共有ごとに作成できるデータベースは1つだけです。
詳細については、 共有データの消費 をご参照ください。
サードパーティアクセス用のリーダーアカウント¶
データ共有は、Snowflakeアカウント間でのみサポートされます。データプロバイダーとして、まだSnowflakeアカウントを持っていない、またはSnowflakeのライセンスを取得する準備ができていないコンシューマーとデータを共有したい場合があります。
このようなコンシューマーとのデータ共有を容易にするために、リーダーアカウントを作成できます。リーダーアカウント(以前の呼称は「読み取り専用アカウント」)は、コンシューマーがSnowflakeのカスタマーになることを必要とせずに、迅速、簡単、費用対効果の高い方法でデータを共有します。
各リーダーアカウントは、それを作成したプロバイダーアカウントに属します。プロバイダーとして、 共有 を使用して、データベースをリーダーアカウントと共有します。ただし、リーダーアカウントは、それを作成したプロバイダーアカウントのデータのみを使用できます。次の図をご参照ください。
リーダーアカウントのユーザーは、リーダーアカウントと共有されているデータをクエリできますが、フルアカウントで許可されているデータのロード、挿入、更新、同様のデータ操作などの DML タスクを実行することはできません。
詳細については、 リーダーアカウントの管理 をご参照ください。