コンシューマーアカウントでオブジェクトへのアクセスをリクエストする¶
このトピックでは、 Snowflake Native App のインストール後にプロバイダーがコンシューマアカウントのオブジェクトに権限やアクセスをリクエストする方法に関する一般的な情報を提供します。
Snowflake Native App での権限および参照について¶
単純な Snowflake Native App では、インストール中にセットアップスクリプトが実行されると、必要なオブジェクトはすべて APPLICATION オブジェクト内に作成されます。この場合、アプリが必要とするすべてのオブジェクトは、 APPLICATION オブジェクト内で作成され、アクセス可能です。コンシューマーは何もする必要はありません。必要な権限はすべて、アプリケーションロールを使ってアプリが管理します。
しかし、より複雑な Snowflake Native App では、 APPLICATION オブジェクトの外部にあるコンシューマーアカウントで、新しいオブジェクトを作成したり、オブジェクトにアクセスしたりすることが必要になる場合があります。この場合、コンシューマーは Snowflake Native App がこれらのオブジェクトの作成やアクセスができるように、必要な権限を付与するか、アクセスを許可する必要があります。
Snowflake Native App Framework により、プロバイダーは以下を実行できます。
コンシューマーアカウントのアカウントレベルの権限をチェックする。
データベースの作成などのタスクを実行するために、アカウントレベルの権限をリクエストする。
コンシューマーアカウントの既存のオブジェクトにアクセスするには 参照 を使用します。
プロバイダーは、次をリクエストして、コンシューマーアカウントへのアクセスをリクエストします。
- グローバル権限
グローバル権限によって、 Snowflake Native App はコンシューマーアカウントでアクションを実行することができます。詳細については、 プロバイダーがコンシューマーからリクエストできる権限 をご参照ください。
- 参照
参照 によって、アプリはコンシューマーアカウントの既存のオブジェクトにアクセスすることができます。プロバイダーは、アプリが
manifest.yml
ファイルでリクエストする参照を定義します。インストール後、コンシューマーは、オブジェクトの 完全修飾名 で作成される参照を提供することで、オブジェクトへのアクセスを許可します。
参照により、アプリは論理名を使用してオブジェクトにアクセスできます。参照により、プロバイダーはオブジェクトの具体的な名前や親データベース、スキーマを知らなくてもアプリを作成できます。
詳細については、 参照 をご参照ください。
コンシューマーが Snowflake Native App へのアクセスを許可する方法¶
プロバイダーがアプリで定義する各アクセスリクエストに対して、コンシューマーはアプリへのアクセスを許可する必要があります。コンシューマーがアクセスを許可する方法は、グローバル権限と参照では異なります。
Snowflake Native App にグローバル権限を付与する¶
プロバイダーが特定の権限または特定のオブジェクトへのアクセスをリクエストするようにアプリを構成する場合、コンシューマーがアプリにこれらの権限を付与できる方法は2つあります。
プロバイダーが Python Permission SDK を使用してユーザーインターフェイスを実装する場合、コンシューマーは Snowsight を使用して、アプリがリクエストする権限を付与します。 Python Permission SDK は、コンシューマーアカウントで必要な GRANT ステートメントを自動的に実行します。
プロバイダーがユーザーインターフェイスを実装しない場合、プロバイダーはコンシューマーにアプリが必要とする権限を伝えなければなりません。たとえば、プロバイダーは、アプリに必要な権限を付与するためにはコンシューマーが実行しなければならない SQL ステートメントに関する情報をコンシューマーに伝えなければなりません。
Snowflakeでは、この情報をアプリの README ファイルに含めることを推奨しています。これは、 Snowflake Native App のリスト一部として、コンシューマーが表示することができます。