USE SECONDARY ROLES

セッションのアクティブ/現在のセカンダリロールを指定します。現在アクティブなセカンダリロールは、現在のユーザーが SQL アクションを実行するために必要な権限を持っているかどうかを決定するコンテキストを設定します。

オブジェクトを作成するために CREATE <オブジェクト> ステートメントを実行する認証は、プライマリロールによって提供されることに注意してください。

詳細については、 セカンダリロールの強制 をご参照ください。

こちらもご参照ください。

USE ROLE

構文

USE SECONDARY ROLES {
      ALL
    | NONE
    | <role_name> [ , <role_name> ... ]
  }

パラメーター

ALL

現在アクティブなプライマリロールに 加えて、ユーザーに付与されているすべてのロール。

各 SQL ステートメントが実行されると、ロールのセットが再評価されることに注意してください。追加のロールがユーザーに付与され、そのユーザーが新しい SQL ステートメントを実行する場合、新しく付与されたロールは、新しい SQL ステートメントのアクティブなセカンダリロールです。 同じロジックが、ユーザーから取り消されたロールにも適用されます。

NONE

セカンダリロールを無効にします。すべての SQL アクションの認証は、プライマリロールを介して提供されます。

role_name [ , role_name ... ]

指定されたロールをセカンダリロールとして有効化します。セカンダリロールは、ユーザ定義のアカウントロールまたはシステムロールとすることができます。Snowflakeに保存されているロール名を指定します。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

使用上の注意

  • 個々のロール名を指定する場合

    • 名前が指定された各ロールは、現在のユーザーに付与されている必要があります。コマンドは指定された各ロールを直ちに検証します。いずれかのロールが付与されていない場合、コマンドはエラーとなり失敗します。

    • コマンドは、セッションに必要なセカンダリロールのセットを記録します。後続の各SQLステートメントに対してアクティブ化されたロールは、目的のセットのサブセットになる可能性があります(セッションポリシーが特定のセカンダリロールを制限している場合など)。

  • ``ALL``が指定されている場合、コマンドはロールの付与を事前には検証しません。代わりに、各SQLステートメントの実行時に、アクティブなセカンダリロールが動的に決定されます。これは、コマンドを再発行しなくても、新しく付与されたロールが自動的にアクティブ化され、取り消されたロールがアクティブではなくなることを意味します。

  • セッションポリシーがアクティブ化できるセカンダリロールを制限している場合でも、コマンドは成功します。ただし、アクティブ化されたセカンダリロールがポリシーによって制限されることを示す情報メッセージが返される場合があります。

USE SECONDARY ROLES ALL;
USE SECONDARY ROLES test_role_1, test_role_2;