GRANT (表スペース特権) ステートメント
この形式の GRANT ステートメントは、表スペースに対する特権を付与します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
ステートメントの許可 ID によって保持されている特権には、少なくとも以下のいずれかの権限が含まれていなければなりません。
- 表スペースを使用するための WITH GRANT OPTION
- ACCESSCTRL、SECADM、SYSADM、または SYSCTRL 権限
構文
説明
- USE
- 表を作成する際に表スペースを指定したり、 デフォルトの表スペースを使用したりするための特権を付与します。 表スペースの作成者には、USE 特権と GRANT オプションが自動的に GRANT されます。
- OF TABLESPACE 表スペース名
- どの表スペースに対する USE 特権を付与するかを指定します。 ここで、 SYSCATSPACE (SQLSTATE 42838) や SYSTEM TEMPORARY 表スペース (SQLSTATE 42809) を指定することはできません。
- 今後
- USE 特権を誰に付与するかを指定します。
- ユーザー
- authorization-name がユーザーであることを指定します。
- GROUP
- authorization-name がグループ名であることを指定します。
- ROLE
- authorization-name がロール名であることを指定します。 ロール名は、現行サーバーに存在するものでなければなりません (SQLSTATE 42704)。
- 1 つ以上のユーザー、グループ、またはロールの許可 ID のリストを指定します。
この許可 ID のリストに、このステートメントを発行するユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
- PUBLIC
- 一連のユーザー (許可 ID) に USE 特権を付与します。
- WITH GRANT OPTION
- 指定した authorization-name に対し、 USE 特権を他のユーザーに与えることを許可します。
ルール
- 指定したそれぞれの authorization-name に関して、USER、GROUP、ROLE のいずれも指定されていない場合には、次のようになります。
- インスタンスに対して有効なセキュリティー・プラグインによって authorization-name の状況を判別できなければ、エラーが戻されます (SQLSTATE 56092)。
- authorization-name がデータベースでは ROLE として定義され、有効なセキュリティー・プラグインでは GROUP または USER のいずれかとして定義されている場合には、エラーが戻されます (SQLSTATE 56092)。
- 有効なセキュリティー・プラグインに従って authorization-name が USER と GROUP の両方として定義されている場合、エラーが戻されます (SQLSTATE 56092)。
- authorization-name が 有効なセキュリティー・プラグインに従って USER のみとして定義されている場合、または未定義の場合は、USER が想定されます。
- authorization-name が、 有効なセキュリティー・プラグインに従って GROUP としてのみ定義されている場合は、GROUP が想定されます。
- authorization-name がデータベースで ROLE としてのみ定義されている場合には、ROLE であると見なされます。
例
ユーザー BOBBY に、表スペース PLANS に表を作成する許可と、この特権を他のユーザーに付与する許可を与えます。
GRANT USE OF TABLESPACE PLANS TO BOBBY WITH GRANT OPTION