Snowflake Native App にアクセスを付与する¶
このトピックでは、コンシューマーが Snowflake Native App にアカウントでのオブジェクトの作成とアクセスを許可する方法について説明します。これには、アプリがリクエストする権限を付与したり、参照を使用して既存のオブジェクトへのアクセスを可能にしたりすることが含まれます。
アプリケーションによりリクエストされる権限と参照について¶
単純な Snowflake Native App では、インストール中にセットアップスクリプトが実行されると、アプリが必要とするオブジェクトはすべて APPLICATION オブジェクト内で作成されます。アプリケーションに必要なオブジェクトはすべて、インストールされたアプリケーション内で作成され、アクセスされます。コンシューマーは自分のアカウントで何もする必要はありません。
ただし、アプリによっては、コンシューマーが自分のアカウントで以下のようなアクションの実行を求める場合があります。
データベースまたはウェアハウスを作成する。
タスクを実行する。
既存のオブジェクト(テーブルなど)にアクセスする。
Snowflake Native App がリクエストできるアクセス権には2種類あります。
アプリがいくつかのアカウントレベルの操作を実行できるようにする権限。アプリは、以下のグローバル権限をリクエストできます。
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
MANAGE WAREHOUSES
CREATE DATABASE
アプリによっては、IMPORTED PRIVILEGES 権限を SNOWFLAKE データベースに対してリクエストすることもあります。詳細については、 SNOWFLAKE データベースで IMPORTED PRIVILEGES 権限を付与する をご参照ください。
コンシューマーカウントにすでに存在し、APPLICATION オブジェクトの外部にあるオブジェクトへのアクセスをアプリに許可する参照。プロバイダーは、
manifest.yml
ファイルでアプリに必要な参照を定義します。アプリをインストールした後、コンシューマーはオブジェクトをアプリに関連付ける 参照 を作成することで、オブジェクトへのアクセスを許可できます。
アプリは、以下の型のオブジェクトとそれに対応する権限へのアクセスをリクエストできます。
オブジェクト型
許可される権限
TABLE
SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES
VIEW
SELECT, REFERENCES
EXTERNAL TABLE
SELECT, REFERENCES
FUNCTION
USAGE
PROCEDURE
USAGE
WAREHOUSE
MODIFY, MONITOR, USAGE, OPERATE
API INTEGRATION
USAGE
コンシューマーは、 Snowsight を使用するか、次のセクションで説明する SQL コマンドを実行することで、これらのリクエストを承認できます。
注釈
リクエストされた権限を付与しなかったり、リクエストされたオブジェクトの参照をアプリに関連付けなかったりすると、アプリの一部が正しく機能しなくなる可能性があります。
Snowsightを使用してアクセスリクエストを管理する¶
プロバイダーが Snowflake Native App でユーザーインターフェイスを実装している場合、コンシューマーは Snowsight を使用して以下を実行できます。
グローバル権限を表示して付与します。
コンシューマーアカウントで既存のオブジェクトへのアクセスを許可します。
グローバル権限を付与する¶
アプリケーションのインストール後に権限を付与したり参照を作成したりするには、次を実行します。
Snowsight にサインインします。
ナビゲーションメニューで Data Products » Apps を選択します。
アプリケーションを選択します。
ツールバーの Security アイコンを選択します。
アプリケーションによってリクエストされたアカウントレベルの権限は、 Account level privileges に表示されます。
Account-level privileges セクションで Review を選択し、付与する権限ごとにスライダーを切り替えます。
Save を選択します。
オブジェクトへの権限およびアクセスを取り消す¶
オブジェクトへの権限やアクセスを取り消すには、次を実行します。
Snowsight にサインインします。
ナビゲーションメニューで Data Products » Apps を選択します。
アプリケーションを選択します。
ツールバーの Security アイコンを選択します。
グローバル権限を取り消すには、 Edit ボタンを選択し、取り消す権限のスライダーを切り替えます。
特定のオブジェクトからのアクセスを取り消すには、 Delete ボタンを選択し、 Revoke Privilege を選択します。
注釈
権限を取り消したり、オブジェクトからのアクセスを削除したりすると、アプリケーションが不安定になったり、動作しなくなったりすることがあります。
SQL コマンドを使用してアプリの権限を管理する¶
アプリケーション開発者が権限付与のためのインターフェイスを実装していない場合は、 SQL コマンドを使用して、アプリケーションのアクセスリクエストを管理する必要があります。
アプリケーションによりリクエストされた権限を表示する¶
プロバイダーがアプリケーションに必要な権限を指定すると、インストールされたアプリケーションの一部として権限リクエストが含まれます。これらの権限は、アプリケーションのインストール後に表示できます。
アプリケーションに必要な権限を表示するには、次の例に示すように SHOWPRIVILEGES コマンドを実行します。
SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
Snowflake Native App に権限を付与する¶
コンシューマーは、アプリがリクエストする権限を決定した後、その権限をアプリに付与することができる。
たとえば、アプリに EXECUTE TASK 権限を付与するには、次の例に示すように GRANTPRIVILEGE コマンドを実行します。
GRANT EXECUTE TASK ON ACCOUNT TO APPLICATION hello_snowflake_app;
Snowflake Native App に MANAGEWAREHOUSES 権限を付与する¶
MANAGE WAREHOUSES 権限 により、アプリケーションはコンシューマーカウント内でウェアハウスを作成、変更、使用することができます。アプリに MANAGE WAREHOUSES 権限を付与するには、次の例に示すように GRANT を使用します。
GRANT MANAGE WAREHOUSES ON ACCOUNT TO APPLICATION hello_snowflake_app;
SNOWFLAKE データベースで IMPORTED PRIVILEGES 権限を付与する¶
アプリケーションによっては、コンシューマーが自分のアカウントの SNOWFLAKE データベースに IMPORTEDPRIVILEGES 権限の付与をリクエストする場合があります。この権限は、 SQL コマンドを使用してのみ付与することができます。 Snowsight を使用して付与することはできません。アプリケーションがこの権限を必要とする場合、プロバイダーはアプリケーションの README ファイルなどでこの要件をコンシューマーに伝える必要があります。
SNOWFLAKE データベースに対する IMPORT 権限を付与するには、以下のコマンドを実行します。
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO APPLICATION hello_snowflake_app;
注釈
IMPORTEDPRIVILEGES 権限により、アプリはコンシューマーアカウントに関連する使用状況とコストに関する情報にアクセスできます。コンシューマーは、この権限を付与する前に、アプリとこの情報を共有することを確認する必要があります。