3.32.1 GRANT DBA(DBA権限定義),GRANT SCHEMA(スキーマ定義権限定義),GRANT SCHEMA OPERATION(スキーマ操作権限定義),GRANT CONNECT(CONNECT権限定義),GRANT RDAREA(RDエリア利用権限定義)
(1) 機能
ユーザにDBA権限,スキーマ定義権限,スキーマ操作権限,CONNECT権限,私用RDエリアの利用権限を与えます。
(2) 使用権限
- DBA権限を持つユーザ
-
DBA権限,スキーマ定義権限,CONNECT権限,及び私用RDエリアの利用権限を与えます。
- CONNECT権限を持つユーザ
-
パスワードを変更できます。
- スキーマの所有者
-
ユーザ自身のスキーマの操作権限を与えます。
(3) 形式
GRANT{DBA TO 認可識別子〔,認可識別子〕… 〔IDENTIFIED {BY パスワード〔,パスワード〕…|USING OS}〕 |SCHEMA TO 認可識別子〔,認可識別子〕… |SCHEMA OPERATION TO 認可識別子〔,認可識別子〕… |CONNECT TO 認可識別子〔,認可識別子〕… 〔IDENTIFIED {BY パスワード〔,パスワード〕…|USING OS}〕 |RDAREA RDエリア名〔,RDエリア名〕… TO{認可識別子〔,認可識別子〕…| PUBLIC }}
(4) オペランド
(a) DBA TO 認可識別子〔,認可識別子〕…〔IDENTIFIED {BY パスワード〔,パスワード〕…|USING OS}〕
- DBA TO
-
ユーザにDBA権限を与える場合に指定します。
- 認可識別子〔,認可識別子〕…
-
DBA権限を与えるユーザの認可識別子を指定します。
- IDENTIFIED BY パスワード〔,パスワード〕…
-
DBA権限を与えるユーザのパスワードを指定します。
既にDBA権限,又はCONNECT権限を持つ簡易認証ユーザの場合,指定できません。
IDENTIFIED BY句とユーザの権限の関係を次の表に示します。
表3‒38 GRANT DBA文のIDENTIFIED BY句とユーザの権限の関係 ユーザの権限
GRANT DBA文のIDENTIFIED BY
指定あり
指定なし
既にCONNECT権限あり
パスワードあり
DBA権限を与えて,指定されたパスワードに変更
DBA権限を与える
パスワードなし
DBA権限を与えて,指定されたパスワードに変更
KFPA11571エラー
CONNECT権限なし
CONNECT権限,DBA権限,及び指定されたパスワードを与える
KFPA11571エラー
- IDENTIFIED USING OS
-
簡易認証ユーザとしてDBA権限を与える場合に指定します。
既にDBA権限,又はCONNECT権限を持つ非簡易認証ユーザの場合,指定できません。
(b) SCHEMA TO 認可識別子〔,認可識別子〕…
- SCHEMA TO
-
ユーザにスキーマ定義権限を与える場合に指定します。
- 認可識別子〔,認可識別子〕…
-
スキーマ定義権限を与える場合,ユーザの認可識別子を指定します。
(c) SCHEMA OPERATION TO 認可識別子〔,認可識別子〕…
- SCHEMA OPERATION TO
-
他ユーザに,自分の所有するスキーマのスキーマ操作権限を与える場合に指定します。
監査人は実行できません。
- 認可識別子〔,認可識別子〕…
-
スキーマ操作権限を与える認可識別子を指定します。
DBA権限,又はCONNECT権限のないユーザを指定することはできません。
(d) CONNECT TO 認可識別子〔,認可識別子〕…〔IDENTIFIED {BY パスワード〔,パスワード〕…|USING OS}〕
- CONNECT TO
-
ユーザにCONNECT権限を与える場合に指定します。
CONNECT権限を与える場合の規則を次に示します。
-
簡易認証ユーザとしてCONNECT権限を与える場合は,IDENTIFIED USING OSを指定してください。
-
簡易認証ユーザに対して,パスワードの変更をする指定(IDENTIFIED BY句を指定,又はIDENTIFIED句の指定を省略)はできません。
-
非簡易認証ユーザに対して,簡易認証ユーザに変更する指定(IDENTIFIED USING OS句の指定)はできません。
-
- 認可識別子〔,認可識別子〕…
-
CONNECT権限を与えるユーザの認可識別子を指定します。
- IDENTIFIED BY パスワード〔,パスワード〕…
-
CONNECT権限を与えるユーザのパスワードを指定します。
IDENTIFIED BY句とユーザの権限の関係を次の表に示します。
表3‒39 GRANT CONNECT文のIDENTIFIED BY句とユーザの権限の関係 ユーザの権限
パスワード文字制限定義
パスワード有効期限
GRANT CONNECT文のIDENTIFIED BY句
指定あり
指定なし
既にCONNECT権限あり
パスワードあり
DBA権限あり
−
−
指定されたパスワードに変更
KFPA11571-Eエラー
DBA権限なし
なし
なし
指定されたパスワードに変更
パスワードなしに変更
あり
指定されたパスワードに変更
KFPA19634-Eエラー
あり
−
指定されたパスワードに変更
KFPA19634-Eエラー
パスワードなし
DBA権限なし
なし
−
指定されたパスワードに変更
パスワードなしに変更
あり
−
指定されたパスワードに変更
KFPA19634-Eエラー
CONNECT権限なし
なし
−
CONNECT権限とパスワードを与える
パスワードなしでCONNECT権限だけを与える
あり
−
CONNECT権限とパスワードを与える
KFPA19634-Eエラー
(凡例) −:該当しません。
- IDENTIFIED USING OS
-
簡易認証ユーザとしてCONNECT権限を与える場合に指定します。
(e) RDAREA RDエリア名〔,RDエリア名〕…TO{認可識別子〔,認可識別子〕…| PUBLIC}
- RDAREA RDエリア名〔,RDエリア名〕
-
ユーザに利用権限を与えるRDエリアの名称を指定します。
- 認可識別子〔,認可識別子〕…
-
利用権限を与えるユーザの認可識別子を指定します。
- PUBLIC
-
指定したRDエリアを公用RDエリアにする場合に指定します。
(5) 共通規則
-
GRANT RDAREAでレプリカRDエリアに利用権限は与えられません。
-
インナレプリカ機能を使用している場合のGRANTの実行条件については,マニュアル「インナレプリカ機能 HiRDB Staticizer Option」を参照してください。
-
パスワード文字制限強化機能を使用している場合,GRANT DBA文,及びGRANT CONNECT文実行時にパスワード文字制限のチェックを行います。
-
RDエリア名には,一時表用RDエリアを指定できません。
-
副監査人にスキーマ定義権限を与えることはできません。
(6) 留意事項
-
このSQL文中に,最大16個の私用RDエリアと,最大1,600個の認可識別子が指定できます。
-
DBA権限,又はCONNECT権限のないユーザには,スキーマ定義権限を与えられません。
-
PUBLIC指定のRDエリア利用権限のあるRDエリアに対して,個別のユーザへRDエリア利用権限を与えられません。また,個別のユーザに権限を与えたRDエリアは,PUBLICを指定して公用RDエリアとして定義できません。
-
DBA権限を与えると,CONNECT権限も与えられます。
-
DBA権限を与えるユーザには,パスワードを指定してください。なお,DBA権限が与えられていても,パスワードのないユーザはDBA権限を使用できません。
-
自分自身にGRANT CONNECTを指定すると,パスワードの変更ができます。この場合,GRANT実行者はCONNECT権限だけでパスワードの変更ができます。
-
GRANTは,OLTP下のX/Openに従ったUAPから指定できません。
-
GRANT DBA文とGRANT CONNECT文で,複数の認可識別子を指定し,同時に複数のユーザに権限を与える場合,IDENTIFIED BY句で指定するパスワードは一部だけの省略はできません。パスワードは指定した認可識別子の数だけ指定するか,又はIDENTIFIED BY句全体を省略してください。ただし,GRANT CONNECT文ではIDENTIFIED BY句全体を省略した場合,パスワードのないDBAを登録するような指定があるとエラーとなり(表「GRANT DBA文のIDENTIFIED BY句とユーザの権限の関係」,表「GRANT CONNECT文のIDENTIFIED BY句とユーザの権限の関係」を参照),GRANT文全体が無効になります。この場合,エラーとなるユーザを別のGRANT文でIDENTIFIED BY句を指定して実行してください。
-
パスワード文字制限機能使用時にGRANT DBA文とGRANT CONNECT文で,複数の認可識別子を指定し,同時に複数のユーザに権限を与える場合,一人でもパスワード文字制限に違反する指定をした場合,エラーとなり(表「GRANT DBA文のIDENTIFIED BY句とユーザの権限の関係」,表「GRANT CONNECT文のIDENTIFIED BY句とユーザの権限の関係」を参照),GRANT文全体が無効となります。
-
パスワード無効アカウントロック状態のユーザにはGRANT DBA文でDBA権限の付与,又はパスワードの変更はできません。GRANT CONNECT文でパスワード無効アカウントロック状態を解除後,GRANT DBA文を実行してください。
-
監査人には,DBA権限は与えられません。
-
監査人には,スキーマ操作権限は与えられません。
-
RDエリア利用権限が主監査人にだけ与えられているRDエリアに対して,他ユーザのRDエリア利用権限は与えられません。
-
既にCONNECT権限を持つ簡易認証ユーザに対してDBA権限を与える場合は,USING OSを指定してください。
-
既にスキーマ操作権限を持つユーザに対して,スキーマ操作権限は与えられません。
(7) 使用例
-
ユーザ(認可識別子:USER1)にDBA権限を与えます。このとき,パスワードは,PSWDとします。
GRANT DBA TO USER1 IDENTIFIED BY PSWD
-
ユーザ(認可識別子:USER2)にスキーマ定義権限を与えます。
GRANT SCHEMA TO USER2
-
ユーザ(認可識別子:USER3)にCONNECT権限を与えます。このとき,パスワードは,PSWDとします。
GRANT CONNECT TO USER3 IDENTIFIED BY PSWD
-
ユーザ(認可識別子:USER3)のパスワードをABCDに変更します。
GRANT CONNECT TO USER3 IDENTIFIED BY ABCD
-
ユーザ(認可識別子:USER4〜6)にRDエリア(RDA1,RDA2)の利用権限を与えます。
GRANT RDAREA RDA1,RDA2 TO USER4,USER5,USER6
-
RDエリア(RDA3)を公用RDエリアとして定義します。
GRANT RDAREA RDA3 TO PUBLIC
-
ユーザ(認可識別子:USER7,USER8)にスキーマ操作権限を与えます。
GRANT SCHEMA OPERATION TO USER7, USER8