コンシューマーからグローバル権限をリクエストする

このトピックでは、コンシューマーがアプリをインストールした後に、プロバイダーがグローバル権限をコンシューマーにリクエストするように Snowflake Native App を構成する方法について説明します。これらの権限により、 Snowflake Native App はコンシューマーカウントでタスクを実行することができるようになります。たとえば、ウェアハウスやデータベースを作成することができます。

アプリで Snowflake Native App のコンテキスト外でアクションを実行したりオブジェクトを作成したりする必要がある場合、コンシューマーはアプリケーションにそれを許可する権限を付与する必要があります。

コンシューマーからグローバル権限をリクエストするワークフロー

以下のワークフローは、グローバル権限をリクエストするために Snowflake Native App を構成する手順の概要を示しています。

注釈

Snowsight を使用してコンシューマーが権限を付与するユーザーインターフェイスの作成に関する情報については、 権限および参照をリクエストするユーザーインターフェイスを作成する をご参照ください。

権限をリクエストするために、プロバイダーは Snowflake Native App を開発し、公開する際に以下を実行します。

  1. アプリに必要な権限を決定します。

    たとえば、アプリがコンシューマーカウントでデータベースを作成する必要がある場合は、プロバイダーが CREATE DATABASE グローバル権限をアプリケーションに付与するようリクエストする必要があります。

    アプリがリクエストできるグローバル権限の詳細については、 プロバイダーがコンシューマーからリクエストできる権限 をご参照ください。

  2. 必要な権限を manifest.yml ファイルに追加します。詳細については マニフェストファイルに権限リクエストを追加する をご参照ください。

Snowflake Native App のインストール後、コンシューマーは以下の操作を実行します。

  1. アプリケーションに必要なグローバル権限を確認します。詳細については、 Snowflake Native App によりリクエストされた権限を表示する をご参照ください。

  2. アプリケーションに対するグローバル権限を付与します。詳細については、 アプリケーションに権限を付与する をご参照ください。

プロバイダーがコンシューマーからリクエストできる権限

Snowflake Native App Framework により、プロバイダーはコンシューマーアカウントで次の グローバル権限 をリクエストすることができます。

  • EXECUTE TASK

  • EXECUTE MANAGED TASK

  • CREATE WAREHOUSE

  • MANAGE WAREHOUSES

  • CREATE DATABASE

プロバイダーは、アプリケーションに対して SNOWFLAKE データベース上の IMPORTED PRIVILEGES をコンシューマーが付与するようにリクエストすることもできます。コンシューマーがこの権限を付与できるのは、 SQL コマンドを使用した場合のみです。詳細については アプリケーションに権限を付与する をご参照ください。この権限は Snowsight では付与できません。

注釈

IMPORTED PRIVILEGES を付与すると、 Snowflake Native App はコンシューマーアカウントに関連する使用状況とコストに関する情報を表示できます。 Snowflake Native App を公開する際には、コンシューマーがこのことを認識できるようにする必要があります。

マニフェストファイルに権限リクエストを追加する

次の例は、 manifest.yml ファイルに EXECUTE TASK 権限を追加する方法を示しています。

privileges:
- EXECUTE TASK:
    description: "Privilege to run tasks within the consumer account"
Copy

プロバイダーは、 サポートされている権限 も同様に追加できます。

Snowflake Native App によりリクエストされた権限を表示する

プロバイダーが manifest.yml ファイルで権限を指定すると、インストールされた Snowflake Native App の一部として権限リクエストが含まれます。コンシューマーは、アプリのインストール後に権限リクエストを表示できます。

アプリに必要なグローバル権限を表示するには、次の例に示すように SHOW PRIVILEGES コマンドを実行します。

SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
Copy

アプリケーションに権限を付与する

コンシューマーは、 Snowflake Native App が必要とする権限を決定した後、その権限をアプリに付与する必要があります。

上記の例でグローバル権限リクエストを付与するには、コンシューマーは次の例に示すように GRANT <権限> コマンドを実行します。

GRANT CREATE DATABASE ON ACCOUNT TO APPLICATION hello_snowflake_app;
Copy

SNOWFLAKE データベースに対する IMPORT 権限を付与するには、以下のコマンドを実行します。

GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO APPLICATION hello_snowflake_app;
Copy