スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
GRANT 形式1(権限定義)
機能
ユーザにDBA権限,スキーマ定義権限,CONNECT権限,私用RDエリアの利用権限,及びアクセス権限を与えます。
Sun Java System Directory Server連携機能使用時はロールにアクセス権限を与えます。
(1)GRANT DBA(DBA権限定義),GRANT SCHEMA(スキーマ定義権限定義),GRANT CONNECT(CONNECT権限定義),GRANT RDAREA(RDエリア利用権限定義)
GRANT DBA(DBA権限定義),GRANT SCHEMA(スキーマ定義権限定義),GRANT CONNECT(CONNECT権限定義),GRANT RDAREA(RDエリア利用権限定義)について説明します。
使用権限
- DBA権限を持つユーザ
- DBA権限,スキーマ定義権限,CONNECT権限,及び私用RDエリアの利用権限を与えます。
- CONNECT権限を持つユーザ
- パスワードを変更できます。
形式
GRANT{DBA TO 認可識別子〔,認可識別子〕…
〔IDENTIFIED BY パスワード〔,パスワード〕…〕
|SCHEMA TO 認可識別子〔,認可識別子〕…
|CONNECT TO 認可識別子〔,認可識別子〕…
〔IDENTIFIED BY パスワード〔,パスワード〕…〕
|RDAREA RDエリア名〔,RDエリア名〕…
TO{認可識別子〔,認可識別子〕…| PUBLIC }}
|
オペランド
- DBA TO 認可識別子〔,認可識別子〕…
〔IDENTIFIED BY パスワード〔,パスワード〕…〕
- DBA TO
- ユーザにDBA権限を与える場合に指定します。
- 認可識別子〔,認可識別子〕…
- DBA権限を与えるユーザの認可識別子を指定します。
- IDENTIFIED BY パスワード〔,パスワード〕…
- DBA権限を与えるユーザのパスワードを指定します。
- IDENTIFIED BY句とユーザの権限の関係を次の表に示します。
表3-44 GRANT DBA文のIDENTIFIED BY句とユーザの権限の関係
ユーザの権限 |
GRANT DBA文のIDENTIFIED BY |
指定あり |
指定なし |
既にCONNECT権限あり |
パスワードあり |
DBA権限を与えて,指定されたパスワードに変更 |
DBA権限を与える |
パスワードなし |
DBA権限を与えて,指定されたパスワードに変更 |
KFPA11571エラー |
CONNECT権限なし |
CONNECT権限,DBA権限,及び指定されたパスワードを与える |
KFPA11571エラー |
- SCHEMA TO
- ユーザにスキーマ定義権限を与える場合に指定します。
- 認可識別子〔,認可識別子〕…
- スキーマ定義権限を与える場合,ユーザの認可識別子を指定します。
- CONNECT TO 認可識別子〔,認可識別子〕…
〔IDENTIFIED BY パスワード〔,パスワード〕…〕
- CONNECT TO
- ユーザにCONNECT権限を与える場合に指定します。
- 認可識別子〔,認可識別子〕…
- CONNECT権限を与えるユーザの認可識別子を指定します。
- IDENTIFIED BY パスワード〔,パスワード〕…
- CONNECT権限を与えるユーザのパスワードを指定します。
- IDENTIFIED BY句とユーザの権限の関係を次の表に示します。
表3-45 GRANT CONNECT文のIDENTIFIED BY句とユーザの権限の関係
ユーザの権限 |
パスワード文字制限定義 |
GRANT CONNECT文のIDENTIFIED BY句 |
指定あり |
指定なし |
既にCONNECT権限あり |
パスワードあり |
DBA権限あり |
− |
指定されたパスワードに変更 |
KFPA11571-Eエラー |
DBA権限なし |
なし |
指定されたパスワードに変更 |
パスワードなしに変更 |
あり |
指定されたパスワードに変更 |
KFPA19634-Eエラー |
パスワードなし |
DBA権限なし |
なし |
指定されたパスワードに変更 |
パスワードなしに変更 |
あり |
指定されたパスワードに変更 |
KFPA19634-Eエラー |
CONNECT権限なし |
なし |
CONNECT権限とパスワードを与える |
パスワードなしでCONNECT権限だけを与える |
あり |
CONNECT権限とパスワードを与える |
KFPA19634-Eエラー |
(凡例) −:該当しません。
- RDAREA RDエリア名〔,RDエリア名〕…
TO{認可識別子〔,認可識別子〕…| PUBLIC}
- RDAREA RDエリア名〔,RDエリア名〕
- ユーザに利用権限を与えるRDエリアの名称を指定します。
- 認可識別子〔,認可識別子〕…
- 利用権限を与えるユーザの認可識別子を指定します。
- PUBLIC
- 指定したRDエリアを公用RDエリアにする場合に指定します。
共通規則
- GRANT RDAREAでレプリカRDエリアに利用権限は与えられません。
- インナレプリカ機能を使用している場合のGRANTの実行条件については,マニュアル「インナレプリカ機能 HiRDB Staticizer Option Version 8」を参照してください。
- パスワード文字制限強化機能を使用している場合,GRANT DBA文,及びGRANT CONNECT文実行時にパスワード文字制限のチェックを行います。
留意事項
- この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を登録するような指定があるとエラーとなり(表3-44,表3-45を参照),GRANT文全体が無効になります。この場合,エラーとなるユーザを別のGRANT文でIDENTIFIED BY句を指定して実行してください。
- パスワード文字制限機能使用時にGRANT DBA文とGRANT CONNECT文で,複数の認可識別子を指定し,同時に複数のユーザに権限を与える場合,一人でもパスワード文字制限に違反する指定をした場合,エラーとなり(表3-44,表3-45を参照)GRANT文全体が無効となります。
- パスワード無効アカウントロック状態のユーザにはGRANT DBA文でDBA権限の付与,又はパスワードの変更はできません。GRANT CONNECT文でパスワード無効アカウントロック状態を解除後,GRANT DBA文を実行してください。
- 監査人には,DBA権限は与えられません。
- RDエリア利用権限が監査人にだけ与えられているRDエリアに対して,他ユーザのRDエリア利用権限は与えられません。
ディレクトリサーバ連携機能を使用する場合の留意事項
ディレクトリサーバ連携機能を使用すると,ユーザのCONNECT権限はディレクトリサーバで管理され,HiRDBでは管理しません。CONNECT権限以外の権限情報についてはHiRDBで管理します。ディレクトリサーバ連携機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
- CONNECT権限は,GRANTでは与えられません。ディレクトリサーバにパスワード属性を指定してユーザを登録すると,CONNECT権限が与えられます。
- DBA権限は,ディレクトリサーバに登録されていないユーザには与えられません。また,ロールに対しても与えられません。
- DBA権限を与える場合のIDENTIFIED BY句には,ディレクトリサーバに登録したパスワードを指定してください。また,パスワードは省略しないでください。GRANT DBAのIDENTIFIED BY句とディレクトリサーバのユーザの権限の関係を次の表に示します。
表3-46 GRANT DBAのIDENTIFIED BY句とディレクトリサーバのユーザの権限の関係
ディレクトリサーバのユーザの権限 |
GRANT DBAのIDENTIFIED BY句 |
指定あり |
指定なし |
ディレクトリサーバにユーザを登録済み※ |
DBA権限を与えて,指定されたパスワードをHiRDBに登録 |
DBA権限を与えて,パスワードなしでHiRDBに登録 |
ディレクトリサーバにユーザを登録していない(CONNECT権限なし) |
KFPA11559-Eエラー |
KFPA11559-Eエラー |
注※ パスワード属性のないユーザの場合,CONNECT権限なしとなります。
- DBA権限を与えても,ディレクトリサーバに登録している情報に対して影響はありません。
- スキーマ定義権限は,ディレクトリサーバに登録されていないユーザに与えられません。また,ロールに対しても与えられません。
- 何も権限を持たないユーザにスキーマ定義権限を与えた場合,スキーマ定義権限は与えられるが,パスワードなしでHiRDBに登録されます。
- RDエリア利用権限は,ディレクトリサーバに登録していないユーザに対しても与えられます。ただし,ロールに対しては与えられません。
ディレクトリサーバ連携機能を未使用に変更する場合の留意事項
- ディレクトリサーバ連携機能を未使用にすると,ユーザのCONNECT権限はHiRDBで管理され,ディレクトリサーバでは管理しません。
- ディレクトリサーバ連携機能を未使用に変更後,パスワードなしのDBA権限保持者が存在する場合,パスワードなしのDBA権限保持者はDBA権限を行使できません。パスワードなしのDBA権限保持者がDBA権限を行使しようとするとKFPA11552-Eエラーとなります。パスワードなしのDBA権限保持者を登録しないようにするためディレクトリサーバ連携機能使用時に,DBA権限保持者のパスワードはディレクトリサーバに登録されているパスワードを設定してください。
使用例
- ユーザ(認可識別子: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
(2)GRANT アクセス権限(アクセス権限定義)
GRANT アクセス権限(アクセス権限定義)について説明します。
使用権限
- 表の所有者
- 自分が所有する実表,外部表,及び自分の実表,ビュー表,外部表から定義した自分の所有するビュー表に対して,自分が持つアクセス権限をほかのユーザに与えられます。ただし,他人が所有する表に対するSELECT権限を受け取って,ビュー表を定義すると,以降このビュー表に対して自分が持つアクセス権限を,ほかのユーザに与えることはできません。
- ディレクトリサーバ連携機能使用時は,ディレクトリサーバに登録されているユーザ又はロールに対してアクセス権限を与えられます。
形式
GRANT{アクセス権限〔,アクセス権限〕…|ALL〔PRIVILEGES〕}
ON〔認可識別子.〕表識別子
TO{認可識別子〔,認可識別子〕…|PUBLIC
|GROUP ロール名〔,ロール名〕…}
アクセス権限::={SELECT|INSERT|DELETE|UPDATE}
|
オペランド
- {アクセス権限〔,アクセス権限〕…| ALL〔PRIVILEGES〕}
- アクセス権限
- 認可するアクセス権限を指定します。なお,同じアクセス権限は指定できません。
- ALL〔PRIVILEGES〕
- 指定した表に対して,アクセス権限で指定できるすべてのアクセス権限を与える場合,指定します。
- ビュー表に対して指定した場合,ビュー表所有者の持つアクセス権限をすべて与えます。
- アクセス権限::={ SELECT | INSERT| DELETE| UPDATE}
- SELECT
- SELECT権限を与える場合に指定します。
- INSERT
- INSERT権限を与える場合に指定します。
- DELETE
- DELETE権限を与える場合に指定します。
- UPDATE
- UPDATE権限を与える場合に指定します。
- 認可識別子
- アクセス権限を与える表の所有者の認可識別子を指定します。
- パブリックビューのアクセス権限を与える場合は,認可識別子に,PUBLICを指定してください。
- 表識別子
- アクセス権限を与える表の名前を指定します。
- TO{認可識別子〔,認可識別子〕…|PUBLIC|GROUP ロール名〔,ロール名〕…}
- 認可識別子
- アクセス権限を与えるユーザの認可識別子を指定します。ユーザの認可識別子は,最大1,600個指定できます。ただし,同じ認可識別子は指定できません。
- PUBLIC
- 指定したアクセス権限を,すべてのユーザに与える場合に指定します。
- ディレクトリサーバ連携機能使用時は,すべてのロールに対してアクセス権限が与えられます。
- GROUP ロール名
- アクセス権限を与えるロール名を指定します。ロール名はSun Java System Directory Serverで管理する情報の一つです。
- ロール名についての規則を次に示します。
- ロール名は,最大1,600個指定できます。
- 同じロール名は指定できません。
- ロール名は,ディレクトリサーバ連携機能を使用するときだけ指定できます。
共通規則
- インナレプリカ機能を使用している場合のGRANTの実行条件については,マニュアル「インナレプリカ機能 HiRDB Staticizer Option Version 8」を参照してください。
留意事項
- GRANTは,OLTP下のX/Openに従ったUAPから指定できません。
- ディレクトリサーバ連携機能使用時は,ディレクトリサーバに登録していないユーザ及びロールに権限を与えることもできます。ただし,表にアクセスする場合は,ディレクトリサーバにユーザが登録されていなければなりません。また,ロールに与えられた権限を使用して,ビュー表を作成できません。
- ユーザに権限を与える場合,ユーザと同じ名称のロール名に対して既に権限が与えられているときは,そのユーザに権限を与えないでください。また,ロールに権限を与える場合,ロールと同じ名称のユーザIDに対して既に権限が与えられているときは,そのロールに権限を与えないでください。
- 監査人以外のユーザに監査証跡表又は監査証跡表を基表としたビュー表のINSERT,UPDATE,DELETE権限を与えることはできません。
使用例
- ユーザ(認可識別子:USER1)に在庫表(ZAIKO)を検索する権限(SELECT権限)を与えます。
GRANT SELECT
ON ZAIKO TO USER1
- すべてのユーザに対して,在庫表(ZAIKO)をアクセスするすべての権限を与えます。
GRANT ALL
ON ZAIKO TO PUBLIC
- ロール(ロール名:SOUMU)に在庫表(ZAIKO)を更新する権限(UPDATE権限)を与えます。
GRANT UPDATE
ON ZAIKO TO GROUP SOUMU
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.