GRANT (スキーマ特権)
この形式の GRANT ステートメントは、スキーマに対する特権を付与します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むことも、 あるいは対話式に実行することもできます。 これは、動的に準備できる実行可能ステートメントです。
権限
このステートメントの権限 ID が保持する特権には、少なくとも以下の 1 つ が含まれていなければなりません。
- ステートメント内で識別された、それぞれのスキーマごとに、
- このステートメントで指定されるすべての特権
- スキーマに対する *OBJMGT のシステム権限
- データベース管理者権限
- セキュリティー管理者権限
構文
.-PRIVILEGES-. >>-GRANT--+-ALL--+------------+-+-------------------------------> | .-,------------. | | V | | '---+-CREATEIN-+-+----' '-USAGE----' .-,-----------. V | >--ON -SCHEMA----schema-name-+----------------------------------> .-,---------------------------------. V | >--TO----+-+-------+--authorization-name-+-+--+-------------------+->< | +-USER--+ | '-WITH GRANT OPTION-' | '-GROUP-' | '-PUBLIC------------------------'
説明
- ALL または ALL PRIVILEGES
- 1 つ以上の特権を認可します。認可される特権は、指定されたスキーマに対してステートメントの権限 ID が持っている認可可能な特権のすべてです。スキーマに対する ALL PRIVILEGES を認可することは、*ALL システム権限を認可するのと同じではないことに注意する必要があります。
ALL を使用しない場合には、以下にリストしたキーワードの 1 つ以上を使用する必要があります。各キーワードは、そこで説明している特権を認可します。
- CREATEIN
- スキーマにオブジェクトを作成する特権を与えます。 オブジェクトの作成に必要なその他の権限または特権は、これを指定しても必要です。
- USAGE
- スキーマを使用する特権を付与します。スキーマに存在するオブジェクトの参照には、USAGE 特権が必要です。
- ON SCHEMA schema-name
- 付与する指定した特権の対象となるスキーマを指定します。
- TO
- 特権を認可するユーザーを指定します。
- USER
- authorization-name がユーザー・プロファイルであることを指定します。USER が指定される場合、authorization-name はユーザー・プロファイルでなければなりません。
- GROUP
- authorization-name がグループ・プロファイルであることを指定します。GROUP が指定される場合、authorization-name はグループ・プロファイルでなければなりません。
- authorization-name,…
- 1 つ以上の権限 ID をリストします。
- PUBLIC
- ユーザー (権限 ID) の集合に対して特権を認可します。詳しくは、権限、特権、およびオブジェクト所有権を参照してください。
- WITH GRANT OPTION
- 指定した authorization-name が、ON 文節で指定されているスキーマに対する特権を他のユーザーに認可できるようにします。
注
対応するシステム権限: GRANT および REVOKE ステートメントは、SQL オブジェクトに対するシステ ム権限の割り当ておよび除去を行います。 次の表は、スキーマに対して認可される SQL 特権に対応するシステム権限を示しています。左側の欄は、SQL 特権をリストしています。 右側の欄は、認可または取り消しされる同等のシステム権限 をリストしています。
SQL の特権 | スキーマに対する認可または取り消しに対応するシステム権限 |
---|---|
ALL (ALL の認可または取り消しは、ステートメントの権限 ID が持つ特権の みを認可または取り消します。) | *OBJMGT
*OBJOPR *READ *EXECUTE *ADD |
CREATEIN | |
USAGE | *OBJOPR
*READ *EXECUTE |
WITH GRANT OPTION | *OBJMGT |
スキーマへの権限を検査する際の対応するシステム権限: 次の表は、スキーマへの権限を検査する際の、SQL 特権に対応するシステム権限を示しています。左側の欄は、SQL 特権をリストしています。 右側の欄は、同等のシステム権限をリストしています。
SQL の特権 | 対応するシステム権限 |
---|---|
CREATEIN | *OBJOPR、*READ、*EXECUTE、および *ADD2 |
USAGE | *EXECUTE2 |
GRANT の規則: GRANT ステートメントで付与できるのは、ステートメントの権限 ID で付与できる特権に限られます。特権を付与できなかった場合は、エラーが返されます。
例
例 1: スキーマ T_SCORES に対する CREATEIN 特権を ユーザー JONES に付与します。
GRANT CREATEIN
ON SCHEMA T_SCORES
TO JONES;
1 CREATEIN が取り消されると、*ADD のみが取り消されます。
2 *OBJOPR と *READ は特定のステートメント (例えば、CREATE など) の場合のみ検査されます。