SQL 解説書
この形式の GRANT ステートメントは、スキーマに対する特権を付与します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、
あるいは動的 SQL ステートメントの使用によって発行することができます。
このステートメントは、動的に準備可能な実行可能ステートメントです。
しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、
ステートメントを動的に準備することはできません (SQLSTATE 42509)。
許可
このステートメントの許可 ID には、以下の特権が少なくとも 1 つ含まれている必要があります。
- schema-name 上の指定した各特権に対する WITH GRANT OPTION
- SYSADM または DBADM 権限
スキーマ名 SYSIBM、SYSCAT、SYSFUN および SYSSTAT に対する特権は、
ユーザーが与えることはできません。
他の GRANT ステートメントについては、GRANT (データベース権限)、
GRANT (索引特権)、GRANT (パッケージ特権)、GRANT (サーバー特権)、
GRANT (表スペース特権)、および GRANT (表、視点、またはニックネーム特権)を参照してください。
構文
.-,---------------.
V |
>>-GRANT--------+-ALTERIN--+--+--ON SCHEMA--schema-name--------->
+-CREATEIN-+
'-DROPIN---'
.-,------------------------------------.
V |
>----TO----+-+-------+---authorization-name--+--+--------------->
| +-USER--+ |
| '-GROUP-' |
'-PUBLIC--------------------------'
>----+-------------------+-------------------------------------><
'-WITH GRANT OPTION-'
説明
- ALTERIN
- スキーマ内のすべてのオブジェクトの更新、またはコメント付けのための特権を与えます。
明示的にスキーマを作成した所有者は、ALTERIN 特権が自動的に与えられます。
- CREATEIN
- スキーマにオブジェクトを作成する特権を与えます。
オブジェクトの作成に必要なその他の権限または特権 (CREATETAB など) は、これを指定しても必要です。
明示的に作成されたスキーマの所有者には、自動的に CREATEIN 特権が付与されます。
暗黙的に作成されたスキーマの CREATEIN 特権は、PUBLIC に自動的に付与されます。
- DROPIN
- スキーマ内のオブジェクトを除去する特権を与えます。
明示的に作成されたスキーマの所有者は、DROPIN 特権を自動的に与えられます。
- ON SCHEMA schema-name
- 特権を与える対象となるスキーマを指定します。
- TO
- 特権を誰に与えるかを指定します。
- USER
- authorization-name がユーザーであることを指定します。
- GROUP
- authorization-name がグループ名であることを指定します。
- authorization-name,...
- 1 人または複数のユーザーまたはグループの許可 ID をリストします。
この許可 ID のリストに、
このステートメントを出すユーザーの許可 ID を含めることはできません (SQLSTATE 42502)。
- PUBLIC
- すべてのユーザーに特権を付与します。
- WITH GRANT OPTION
- 指定した authorization-name に対し、
特権を他のユーザーに与えることを許可します。
WITH GRANT OPTION を省略すると、
指定した authorization-name は以下のいずれかの場合にのみ、
特権を他のユーザーに与えることができます。
- DBADM 権限を持っている
- 他のソースから特権を与える許可を受けた
規則
- USER も GROUP も指定しない場合には、
- authorization-name がオペレーティング・システムで GROUP としてのみ定義されている場合には、
GROUP であるとみなされます。
- authorization-name がオペレーティング・システムで USER としてのみ定義されている場合には、
USER であるとみなされます。
- オペレーティング・システムで authorization-name が両方として定義されている場合、
または DCE 認証が使用されている場合、エラー (SQLSTATE 56092) が発生します。
- 一般に、GRANT ステートメントはステートメントの許可 ID が与えることを許されている特権の付与のみを処理し、
1 つまたは複数の特権が与えられなかった場合は警告 (SQLSTATE 01007) を戻します。
どのような特権も与えられなかった場合は、エラーが戻されます (SQLSTATE 42501)。
98
例
例 1:
USER2 にスキーマ CORPDATA にオブジェクトを作成する特権を与えます。
GRANT CREATEIN ON SCHEMA CORPDATA TO USER2
例 2:
BIGGUY にスキーマ CORPDATA のオブジェクトを作成および除去する特権を与えます。
GRANT CREATEIN, DROPIN ON SCHEMA CORPDATA TO BIGGUY
脚注:
- 98
-
ステートメントの処理に使用されるパッケージが、
LANGLEVEL を SQL92E または MIA に設定してプリコンパイルされていた場合、
授与者が授与の対象に対して NO 特権を持っている場合以外は警告が戻されます (SQLSTATE 01007)。
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]