アプリ内の実行ファイルへの制限付き呼び出し元権利の実行

このトピックでは、アプリ内の実行ファイルに制限付き呼び出し元権利を付与する方法について説明します。

アプリにおける所有者の権利と通話制限について

Snowflake Native App 内では、実行可能ファイルは所有者の権限または制限された呼び出し側の権限で実行されます。 Snowflake Native App Framework では、以下のタイプの実行可能ファイルがサポートされています:

  • アプリが所有するストアドプロシージャ

  • コンテナー搭載アプリで利用可能なサービス

所有者の権限:

所有者権限を使用する実行ファイルは、その実行ファイルの所有者に与えられた権限で実行されます。デフォルトでは、アプリ内の実行可能ファイルには所有者の権限が使用されます。アプリでは、実行ファイルのオーナーはアプリ自身です。

制限された呼び出し元権限:

制限付き呼び出し元権限は、呼び出し元権限で実行ファイルを実行することを許可しますが、実行ファイルがどの呼び出し元権限で実行されるかを制限します。制限付き呼び出し権限では、コンシューマー・アカウントの管理者が /sql-reference/sql/grant-caller コマンドを使用して明示的に許可しない限り、アプリが所有する実行ファイルを特定の権限で実行することはできません。

アプリに制限付き発信者権限を付与するために必要な権限

コンシューマーとしてアプリに発信者権限を付与するには、 ACCOUNTADMIN ロールを使用するか、 MANAGE CALLER GRANTS 権限を持つロールを使用する必要があります。詳細については、 GRANT CALLER をご参照ください。

Snowsight を使用して、アプリ内の実行ファイルに呼び出し元グラントを付与します。

Snowsight を使用すると、コンシューマーアカウントのオブジェクトに対して、アプリに呼び出し元グラントを付与することができます。

注釈

アプリからの発信者権限の取り消しや、特定のテーブルへの発信者権限の付与など、その他のタスクを実行するには、適切な SQL コマンドを使用する必要があります。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Data Products » Apps を選択します。

  3. アプリを選択してください。

  4. ツールバーの Settings アイコンをクリックし、 Privileges タブを選択します。

  5. アプリが発信者権限の制限に対応している場合、 Privileges タブに Restricted caller's rights セクションが表示されます。

    注釈

    プロバイダーが、制限された発信者の権限を表示するようにアプリを構成している場合にのみ、 Snowsight から発信者権限 UI を付与できます。

  6. Add grants をクリックします。

  7. Access scope を選択してください。

    これは、呼び出し元の権限がスキーマに適用されるのか、データベースに適用されるのか、アカウントレベルに適用されるのかを決定します。アプリに不要な権限を付与しないように、可能な限り範囲の狭いオプションを選択する必要があります。

    注意

    アカウントレベルのスコープを選択すると、サポートされているすべてのオブジェクトタイプでアプリの呼び出し元権限が付与される可能性があるため、注意が必要です。

  8. スキーマまたはデータベースのスコープを選択した場合は、必要に応じてスキーマまたはデータベースを選択します。

注釈

複数のスキーマまたはデータベースを選択できます。異なるデータベースのスキーマを選択することもできます。

  1. Next をクリックします。

  2. 発信者権限を付与するオブジェクトのタイプを選択します。

    検索を使用してオブジェクトタイプを検索します。オブジェクトタイプのリストは、上記で選択したスコープによって異なります。

    オブジェクトタイプを選択すると、リスト内のオブジェクトの項目が展開され、各オブジェクトタイプで利用可能な権限が表示されます。

  3. 付与したい権限を選択します。

    オブジェクトタイプごとに複数の権限を選択することができます。他のオブジェクトタイプの権限を選択することもできます。

    注釈

    Snowflakeは、選択したオブジェクトに自動的に USAGE 権限を付与します。

  4. Next をクリックします。

  5. Grant summary を選択して、選択したスコープ、オブジェクトタイプ、権限を確認します。

    注釈

    今後作成される選択したタイプのオブジェクトは、選択したスコープとオブジェクトタイプを使用して、同じ権限で作成されます。

  6. Snowsight が実行する GRANT CALLER コマンドを表示するには、 SQL を選択します。

    注釈

    必要であれば、これらのコマンドをコピーし、ワークシートで手動で実行することができます。

  7. Save をクリックします

選択したスコープ、オブジェクト、権限が Restricted caller's rights section に表示されます。

選択した権限を変更するには、 Edit をクリックし、必要に応じて権限を選択または選択解除します。

SQL を使用して、アプリ内の実行ファイルに呼び出し元グラントを付与します。

制限された発信者権限をリクエストするアプリを構成する場合は、以下のタスクを実行して、アプリに発信者権限を付与します。

  1. アプリのリストをチェックして、プロバイダーがアプリに RCR 実行可能ファイルがあることを伝えているかどうかを確認します。

  2. リストに記載されているように、発信者付与を付与します。次の例は、 GRANT CALLER コマンドを使用して、特定のデータベースとスキーマのすべてのテーブルに SELECT 権限を付与する方法を示しています。

    GRANT CALLER USAGE ON DATABASE db1
      TO APPLICATION hello_snowflake_app;
    GRANT CALLER USAGE ON SCHEMA db1.sch1
      TO APPLICATION hello_snowflake_app;
    GRANT INHERITED CALLER SELECT ON ALL TABLES IN SCHEMA db.sch1
      TO APPLICATION hello_snowflake_app;
    
    Copy

    このコマンドは、制限された呼び出し元権限を持つ実行ファイルに、 db.sch1 データベースとスキーマを持つすべてのテーブルに対する実行クエリへのアクセスを許可します。すべてのテーブルに SELECT 権限を付与することに加えて、データベースとスキーマに USAGE を付与する必要があります。