SET ROLE ステートメント

SET ROLE ステートメントは、セッションの許可 ID が特定のロールのメンバーであることを確認します。 許可 ID は、ロールが許可 ID に付与されるかまたはメンバーとして許可 ID を持つグループまたはロールに付与されると、そのロールのメンバーシップを取得します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

必要ありません。

構文

構文図を読む構文図をスキップするSET ROLE=role-name

説明

role-name
セッションの許可 ID がメンバーとして所属する、検査対象のロールを指定します。 role-name は、現行サーバーの既存のロールを識別するものでなければなりません (SQLSTATE 42704)。 セッションの許可 ID が role-name のメンバーではない場合、エラーが戻されます (SQLSTATE 42501)。

  • 許可 ID に既に付与されているロールはすべて、許可検査で使用されます。 SET ROLE ステートメントは、この許可検査でどのロールを使用するかということには影響を与えません。 許可 ID がメンバーとして所属するロールの変更は、GRANT ROLE および REVOKE ROLE ステートメントを使用して行います。

  • 例 1: ユーザー WALID にロール EDITOR が付与されており、ロール AUTHOR は付与されていません。 WALID が EDITOR ロールのメンバーであることを確認します。
       SET ROLE EDITOR
  • 例 2: WALID が AUTHOR ロールのメンバーではないことを確認します。 以下のステートメントはエラーを戻します (SQLSTATE 42501)。
       SET ROLE AUTHOR