自動フルフィルメントオブジェクト

続行する前に、クロスクラウドの自動フルフィルメント(自動フルフィルメント)でサポートされるオブジェクト、オブジェクトがアカウントロールに依存する方法、Snowflakeが自動フルフィルメント用に作成する内部オブジェクト、およびオブジェクトレベルの自動フルフィルメントによって具体的に何が履行されるかを理解してください。

自動複製がサポートされているオブジェクト

リストに含まれる、または 参照される データベースオブジェクトには、自動複製のサポートがあるオブジェクトのみを含める必要があります。

データ製品に応じてサポートされているオブジェクトは異なります。

オブジェクト

共有(データベース)

アプリケーションパッケージ

テーブル

ビュー(標準、つまり非セキュア)

ビュー(マテリアライズド)

ビュー(セキュア)

REFERENCE_USAGE 権限を使用して他のデータベースに格納されているデータを参照するセキュアビュー。

動的テーブル

✔ (アプリケーションパッケージからのみ)

Icebergテーブル

データベースロール

SQL UDF/UDTF (レギュラー、非セキュアとしても知られています)

✔ (参照されるデータベースの共有ビューから呼び出される場合)

SQL UDF/UDTF (セキュア)

✔ (参照されるデータベースの共有ビューから呼び出される場合)

ストアドプロシージャ(共有では使用しない)

マスキングポリシーおよび行アクセスポリシー

タグ

タスク(共有では使用しない)

アラート(共有では使用しない)

シークレット(共有では使用しない)

このリストにあるオブジェクトが複製グループまたはフェールオーバーグループの一部として指定されている場合、自動フルフィルメントはサポートされません。詳細については 複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。プライマリデータベースにハイブリッドテーブルが含まれている場合、リフレッシュ操作は失敗します。詳しくは、 Snowflakeコミュニティフォーラム をご覧ください。

データ製品に、リストでサポートされているオブジェクト以外のオブジェクトが含まれている、または参照されている場合は、データ製品を更新する必要があります。

アカウントロールに依存するオブジェクトの自動フルフィルメント

自動フルフィルメントはアカウントロールを複製しません。代わりに、 SSAs のオブジェクトは ACCOUNTADMIN ロールによって所有されます。

共有またはアプリケーションパッケージにアカウントロールに依存するオブジェクトが含まれている場合、そのオブジェクトはコンシューマーと共有されたときに期待とは異なる動作をするかもしれません。例:

  • INVOKER_ROLE コンテキスト関数を使用して、ポリシーによって保護されたデータを含むセキュアビューを共有する場合、ビューの所有者ロールが異なるため、ポリシーがプロバイダーアカウントのリージョンとは異なる値に評価される可能性があります。

  • SECURITYADMIN ロールのみが SELECT 権限を持つテーブルなど、ビューによって参照されるオブジェクトがアカウントロールに制限されているセキュアビューを共有する場合、プロバイダーアカウントの SECURITYADMIN ロールを持たないユーザーがクエリを実行するとビューが展開されないことがありますが、コンシューマーアカウントの SECURITYADMIN ロールを持たないユーザーがクエリを実行すると結果が返されます。

アカウントロールを使用する代わりに、データベースロールを使用してください。詳細については、 ポリシーで保護されたデータを共有する および IS_DATABASE_ROLE_IN_SESSION をご参照ください。

自動フルフィルメント用に作成された内部Snowflakeオブジェクト

Snowflakeは、クロスクラウド自動フルフィルメントをサポートするために以下の内部オブジェクトを作成します。

オブジェクト型

名前

ロール

SNOWFLAKE$GDS_RL

AUTO_FULFILLMENT_EXECUTOR

データベース

SNOWFLAKE$GDS

複製グループ

SNOWFLAKE$GDS の接頭辞付き

これらの内部オブジェクトは、別のリージョンに安全な共有領域を作成するなど、自動フルフィルメントのタスクを実行するために使用され、フルフィルメントのタスクなど、自動フルフィルメントに使用されるオブジェクトを格納するためのデータベースを作成します。

これらの内部オブジェクトは、それぞれ SHOW DATABASESSHOW ROLES、または SHOW REPLICATION GROUPS を実行すると表示されます。これらのオブジェクトを変更したり、他のユーザーやロールに許可を付与しないでください。

オブジェクトレベルの自動フルフィルメント

オブジェクトレベルの自動複製を構成すると、 SUBDB がサポートされているオブジェクトに使用されます。これらのオブジェクトから参照されるオブジェクトもサポートされている必要があります。サポートされるオブジェクトのリストについては、このページの 自動複製がサポートされているオブジェクト トピックを参照してください。

追加のリージョンとクラウドへのリストの自動複製を示す図。
  1. 地域の最初のコンシューマーがリストを取得します。

  2. 自動複製により、共有内のオブジェクトがセキュリティで保護された共有領域に転送されます。

  3. リストを取得したコンシューマーは、Snowflakeリージョンの安全な共有領域からデータ製品を取得します。

オブジェクトレベルの自動複製で何が複製されるか

データ製品に SUBDB (オブジェクトレベル)の自動複製を使用する場合、共有またはアプリに直接付与されたオブジェクト、または共有またはアプリ内のオブジェクトによって参照されたオブジェクトのみが自動複製されます。

例:

データ製品のオブジェクト

転送内容

データベースとスキーマのテーブル

テーブル

同じデータベース内のテーブルから作成されたセキュアビュー

セキュアビューとテーブル

FULL_DATABASE 自動複製を使用したデータベースのテーブル

データベース全体

SUBDB 自動複製を使用したデータベースのテーブル

テーブル