コンシューマーアカウントにおける権限のリクエスト¶
このトピックでは、コンシューマーが Snowflake Native App のインストール後にプロバイダーが権限をリクエストする方法についての一般的な情報を提供します。
Snowflake Native App での権限および参照について¶
単純な Snowflake Native App では、インストール中にセットアップスクリプトが実行されると、必要なオブジェクトはすべて APPLICATION オブジェクト内に作成されます。このコンテキストでは、 Snowflake Native App が必要とするすべてのオブジェクトは、インストールされたアプリ内で作成され、アクセス可能です。コンシューマーは Snowflake Native App に権限を付与する必要はありません。必要なすべての権限は、アプリケーションロールを使用して管理されます。
しかし、より複雑な Snowflake Native App では、新しいオブジェクトを作成したり、コンシューマーアカウントに作成される APPLICATION オブジェクトの外部にある、コンシューマーアカウントの既存オブジェクトにアクセスしたりすることが必要になる可能性があります。これらのコンテキストでは、コンシューマーは、これらのオブジェクトを作成したりアクセスしたりするために必要な権限を付与する必要があります。
Snowflake Native App Framework により、プロバイダーは以下を実行できます。
コンシューマーアカウントのアカウントレベルの権限をチェックする。
データベースの作成などのタスクを実行するために、アカウントレベルの権限をリクエストする。
参照を使用してオブジェクトレベルの権限をリクエストする。
プロバイダーは、次をリクエストして、コンシューマーアカウントへのアクセスをリクエストする Snowflake Native App を設計することができます。
- グローバル権限
Snowflake Native App がコンシューマーカウントでタスクを実行できるようにする権限を含める。詳細については、 プロバイダーがコンシューマーにリクエストできる権限 をご参照ください。
- 参照
APPLICATION オブジェクト内に存在しないが、コンシューマーアカウントに既に存在するオブジェクトに Snowflake Native App のアクセスを許可します。プロバイダーは、 Snowflake Native App に必要な参照を定義します。アプリがインストールされた後、コンシューマーは、必要なオブジェクトの名前とスキーマを提供して、自分のアカウントのオブジェクトとアプリを関連付けます。
参照は、プロバイダーがオブジェクトの論理名を使用してコードを記述できるようにします。これにより、オブジェクトの名前や親スキーマやデータベースをたどる必要がなくなり、コードを簡単に記述できます。
コンシューマーが Snowflake Native App へのアクセス権を付与する方法¶
コンシューマーは、 Snowflake Native App が実行する各チェックやリクエストに対して、アプリがこれらのアクションを実行できるように必要な権限を付与する必要があります。コンシューマーが Snowflake Native App にこれらの権限を付与する方法は2つあります。
プロバイダーは、 Snowflake Native App Framework が提供する SDK を使用して、Streamlitアプリとしてユーザーインターフェイスを作成します。Streamlitアプリでは、コンシューマーは必要な権限を Snowsight で付与することができるようになります。このアプローチでは、プロバイダーにはインターフェイスを実装するための追加作業が必要ですが、コンシューマーエクスペリエンスは合理化されます。
プロバイダーは SQL コマンドを手動で実行し、 Snowflake Native App のインストール後に必要な権限を付与するようコンシューマーにリクエストします。このアプローチでは、プロバイダーは、コンシューマーが実行する必要のある GRANT <権限> ステートメントをコンシューマーに通知する必要があります。
コンシューマーが SQL コマンドを実行するまで、 Snowflake Native App は機能しない可能性があります。このアプローチでは、プロバイダーとコンシューマーの間で追加のコミュニケーションが必要です。