GRANT (SETSESSIONUSER 特権) ステートメント

この形式の GRANT ステートメントは、1 つ以上の許可 ID に対する SETSESSIONUSER 特権を付与します。 この特権の場合、その保有者は、SET SESSION AUTHORIZATION ステートメントを使用して、指定された一連の許可 ID のうちの 1 つに対してセッション許可を設定することができます。

呼び出し

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

許可

このステートメントの許可 ID が持つ特権には、SECADM 権限が含まれている必要があります。

構文

Read syntax diagramSkip visual syntax diagramGRANT SETSESSIONUSER ON ,USERsession-authorization-namePUBLIC TO,USERGROUPauthorization-name

説明

SETSESSIONUSER ON
新しい許可 ID を担うための特権を付与します。
USER セッション許可名 (session-authorization-name)
SET SESSION AUTHORIZATION ステートメントによって authorization-name が担うことのできる許可 ID を指定します。 session-authorization-name は、グループではなく、ユーザーを指定する必要があります。
PUBLIC
SET SESSION AUTHORIZATION ステートメントによって被認可者が任意の許可 ID を担えることを指定します。
今後
特権を誰に付与するかを指定します。
ユーザー
authorization-name がユーザーであることを指定します。
GROUP
authorization-name がグループであることを指定します。
権限名
1 人または複数のユーザーまたはグループの許可 ID をリストします。

この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。

ルール

  • 指定した authorization-name ごとに、 USER または GROUP のどちらも指定されない場合には、次のようになります。
    • インスタンスに対して有効なセキュリティー・プラグインによって authorization-name の状況を判別できなければ、エラーが戻されます (SQLSTATE 56092)。
    • 有効なセキュリティー・プラグインに従って authorization-name が USER と GROUP の両方として定義されている場合、エラーが戻されます (SQLSTATE 56092)。
    • authorization-name有効なセキュリティー・プラグインに従って USER のみとして定義されている場合、または未定義の場合は、USER が想定されます。
    • authorization-name が、 有効なセキュリティー・プラグインに従って GROUP としてのみ定義されている場合は、GROUP が想定されます。

  • グループに付与されている特権: グループに付与されている特権は、以下の許可チェックでは使用されません。
    • パッケージ内の静的 DML ステートメント
    • CREATE VIEW ステートメントの処理過程での基本表
    • マテリアライズ照会表の CREATE TABLE ステートメントの処理過程での基本表
    • SQL ルーチンの作成
    • トリガーの作成

  • 例 1: 以下のステートメントは、ユーザー WALID に対してセッション許可を設定する権利をユーザー PAUL に付与するので、WALID としてステートメントを実行する権利も付与します。
       GRANT SETSESSIONUSER ON USER WALID
         TO USER PAUL
  • 例 2: 以下のステートメントは、ユーザー BOBBY に対してセッション許可を設定する権利をユーザー GUYLAINE に付与します。 また、ユーザー RICK および KEVIN に対してセッション許可を設定する権利もユーザー GUYLAINE に付与します。
       GRANT SETSESSIONUSER ON USER BOBBY, USER RICK, USER KEVIN
         TO USER GUYLAINE
  • 例 3: 以下のステートメントは、全員に対してセッション許可を設定する権利を、ユーザー WALID、およびグループ ADMINS と ACCTG 内の全員に対して付与します。
       GRANT SETSESSIONUSER ON PUBLIC TO USER WALID, GROUP ADMINS, ACCTG