ネイティブアプリでの宣言共有:制限事項¶
宣言型共有はSnowflakeネイティブアプリの機能の1つであり、プロバイダーは単純な YAML 構成ファイルを使用して、複数のデータベースでオブジェクトをすばやく定義して共有することができます。この機能はデータ共有ワークフローを大幅に簡素化しますが、プロバイダーが実装する前に理解しておくべき制限があります。
サポートされているオブジェクト型¶
宣言型共有は、以下のオブジェクト型をサポートします。
テーブル
**安全なビュー**(マテライズドビューを含む)
ノートブック
他のすべてのオブジェクト型については、ネイティブアプリの宣言型共有での共有はサポートされていません。
ノートブックの制限¶
- Read-only for consumers
コンシューマーは、プロバイダーのノートブックをその場所で編集したり、クローンしたりすることはできません。
- Network access
ノートブックがお客様のアカウントで実行されている場合、外部エンドポイントやコンシューマーデータにアクセスすることはできません。
- Specialized libraries
地理空間およびその他のサードパーティライブラリは、ノートブックですぐに動作することが保証されていません。
- External dependencies
宣言型共有アプリは、外部ライブラリ(Snowflake Anacondaチャネルおよびコードステージ内のPythonファイル)のサポートが制限されています。
- 非インタラクティブ実行
ネイティブアプリケーションの一部であるノートブックは、ワークシートや SQL コマンドによって非インタラクティブに実行することはできません。
セキュリティとアクセス制御¶
- Role definition
共有コンテンツで参照されるすべてのアプリケーションロールは、マニフェストの
rolesフィールドで事前定義されている必要があります。- Object-level Roles
オブジェクトロールは、親スキーマロールのサブセットである必要があります。
- Missing role validation
共有構成で参照されているロールが存在しない場合、マニフェストを検証するとエラーが返されます。
- Minimum privileges
shared_content.yamlファイルをコミットするプロバイダーロールには、少なくともコンシューマーに付与される権限と同じ権限が共有オブジェクトに対して必要です。- No REFERENCE_USAGE required
従来のデータ共有とは異なり、プロバイダーはアプリケーションパッケージに REFERENCE_USAGE 権限を付与する必要がありません。
移行および互換性¶
- Declarative Sharing migration
ネイティブアプリでのデータ共有から宣言型共有に切り替えるための移行のサポートは利用できません。
命名および構成の制約¶
- No wildcards
オブジェクト名は明示的に指定する必要があります。ワイルドカードまたは正規表現マッチングはサポートされていません。
- Name collision prevention
2つの共有オブジェクトが同じ DOMAIN と名前を持つことはできません。
- Schema mapping
スキーママッピングはサポートされていません。複数のデータベースからのスキーマ名の重複は許可されていません。
Monitoring¶
- 監査可能性
Declarative Native Apps は、共有データがどのように使用されているかについて、プロバイダーが消費者から情報を受け取るための監視リソース(監査証跡など)を提供しません。コンシューマーが監査を必要とするコンプライアンスや規制上の要件を持っている場合、コンシューマーはプロバイダーと協力して独自の監視ソリューションを実装する必要があります。