宣言型アプリのコンシューマー側実行モデル¶
コンシューマーとして Declarative Native App をインストールする場合、Native App Frameworkでは制御された環境でアプリのデータアクセスとコード実行を分離することにより、アプリがデータにアクセスしたり、コンシューマーアカウントのリソースに影響を与えたりすることを防ぎます。
Native App Frameworkは、Declarative Native Apps にサンドボックススタイルのセキュリティ境界を強制することで、アプリがアプリパッケージに含まれるデータにのみアクセスできるようにします。これにより確実に、アプリはコンシューマーアカウントの他のデータ、コードリソース、またはシステムリソースにアクセスできなくなるので、アプリを実行するためのセキュアな環境が提供され、コンシューマーの資産が保護されることになります。
Declarative Native Apps のセキュリティ境界は、適切な権限が与えられるとコンシューマーアカウントの他のリソースにアクセスできるNative App Frameworkアプリのセキュリティ境界よりも制限が強化されています。
Declarative Native Apps の埋め込みコードオブジェクト¶
Declarative Native Apps に対して現在唯一サポートされているコードオブジェクトが、Snowflake Notebooksです。現在、Declarative Native Apps はロジックに、Streamlit、ストアドプロシージャ、または UDFs などの他のタイプのコードリソースを使用することはできません。Declarative Native App に埋め込まれたコードオブジェクトは、以下のみを実行できます。
アプリパッケージ内からデータまたはコードオブジェクトにアクセスする。
アプリパッケージによって公開されたテーブルとビューに対してクエリ、可視化、関数を実行する。アプリには、これらのテーブル、ビュー、関数への SELECT アクセス権があります。
埋め込みロジックは、以下を実行できません。
コンシューマーアカウントのその他のデータ製品にアクセスする。
コンシューマーアカウントの他のロジックにアクセスする。
コンシューマーアカウントにインストールされた他のデータ製品に関するメタデータにアクセスする。
システムテーブルやビューなど、コンシューマーアカウントのシステムリソースにアクセスする。たとえば、
SHOW DATABASESまたはSHOW TABLESを実行すると、アプリパッケージの一部であるデータベースとテーブルのみを返します。コンシューマーアカウントの他のデータベースとテーブルは、アプリに表示されません。コンシューマーアカウントのシステムパラメーターまたは設定を変更する。たとえば、ウェアハウスのサイズの変更や、ユーザーロールの変更など。
アプリパッケージの一部ではない新しいウェアハウス、データベース、テーブル、ビューを作成するなど、コンシューマーアカウントでリソースまたは外部統合を作成する。
注釈
アプリは現在のユーザーアカウントのデフォルトウェアハウスを使用します。ウェアハウスの作成の詳細については、CREATE WAREHOUSE をご参照ください。ユーザーアカウントのデフォルトウェアハウスの設定については、ALTER USER をご参照ください。