7.4.2 監査対象イベントの定義
定義系SQLのCREATE AUDIT文で監査対象イベントを定義します。CREATE AUDIT文の指定形式を次に示します。
- 〈この項の構成〉
(1) 指定形式
項番 |
指定形式 |
指定要否 |
---|---|---|
1 |
CREATE AUDIT 〔AUDITTYPE {PRIVILEGE|EVENT|ANY}〕 |
○ |
2 |
FOR 操作種別 |
○ |
3 |
〔選択オプション〕 |
○ |
4 |
〔WHENEVER {SUCCESSFUL|UNSUCCESSFUL|ANY}〕 |
○ |
■各項目の詳細
項番 |
指定形式 |
指定要否 |
---|---|---|
5 |
操作種別::={ANY |
○ |
|SESSION〔{セッション種別|ANY}〕 |
× |
|
|PRIVILEGE〔{権限操作種別|ANY}〕 |
× |
|
|DEFINITION〔{オブジェクト定義イベント種別|ANY}〕 |
× |
|
|ACCESS〔{オブジェクト操作イベント種別|ANY}〕 |
× |
|
|UTILITY〔{ユティリティイベント種別|ANY}〕 |
× |
|
|SDB_ACCESS〔{SDBデータベース操作イベント種別|ANY}〕 |
○ |
|
|SDB_UTILITY〔{SDBユティリティ操作イベント種別|ANY}〕} |
○ |
|
6 |
選択オプション::={ON オブジェクト名 |BY AUTHORIZATION 認可識別子} |
○※ |
オブジェクト名::= {FUNCTION 認可識別子.ルーチン識別子 |INDEX 認可識別子.インデクス識別子 |LIST 認可識別子.表識別子 |PROCEDURE 認可識別子.ルーチン識別子 |RDAREA RDエリア名 |SCHEMA 認可識別子 |TABLE 〔認可識別子. 〕表識別子 |TRIGGER 認可識別子.トリガ識別子 |TYPE 認可識別子.データ型識別子 |VIEW 認可識別子.表識別子 |SEQUENCE 認可識別子.順序数生成子識別子} |
× |
|
7 |
セッション種別::= {CONNECT|DISCONNECT|AUTHORIZATION} |
× |
8 |
権限操作種別::= {GRANT|REVOKE} |
× |
9 |
オブジェクト定義イベント種別::= {CREATE|DROP|ALTER} |
× |
10 |
オブジェクト操作イベント種別::= {SELECT|INSERT|UPDATE|DELETE|PURGE|ASSIGN |CALL|LOCK|NEXT VALUE} |
× |
11 |
ユティリティイベント種別::= {PDLOAD|PDRORG|PDEXP|PDCONSTCK} |
× |
12 |
SDBデータベース操作イベント種別::= {FETCH 〔FETCHオプション〕|STORE|MODIFY|ERASE |CLEAR|FETCHDB ALL} |
○ |
13 |
FETCHオプション::=FIRST |
○ |
14 |
SDBユティリティ操作イベント種別::= {PDSDBDEF|PDSDBLOD|PDSDBROG} |
○ |
(2) オペランドの説明
ここでは,指定形式の項番5,6,12〜14のオペランドについてだけ説明します。そのほかのオペランドについては,マニュアル「HiRDB SQLリファレンス」の「CREATE AUDIT(監査対象イベントの定義)」を参照してください。
- 5)操作種別::={ANY
-
|SDB_ACCESS〔{SDBデータベース操作イベント種別|ANY}〕
|SDB_UTILITY〔{SDBユティリティ操作イベント種別|ANY}〕}
監査対象とする操作種別を指定します。個々の操作種別とANYは,個別に定義,および削除をします。例えば,SDB_UTILITYを定義した状態で,ANYだけをDROP AUDIT文で削除しても,SDB_UTILITYの定義は残ります(監査対象のままとなります)。
- ANY
-
すべての操作種別を監査対象とします。ただし,次のオプションは無効になります。
-
SDBデータベース操作イベント種別のFETCHオプション
-
- SDB_ ACCESS〔{SDBデータベース操作イベント種別|ANY}〕
-
SDBデータベース操作イベントを監査対象に定義する場合に指定します。ANYは,すべてのSDBデータベース操作イベントを監査対象に定義する場合に指定します。ただし,ANYを指定した場合,FETCHオプションは無効になります。
個々のSDBデータベース操作イベント種別とANYは,個別に定義,および削除をします。例えば,FETCHおよびANYを定義した状態で,ANYだけをDROP AUDIT文で削除しても,FETCHの定義は残ります(監査対象のままとなります)。
- SDB_UTILITY〔{SDBユティリティ操作イベント種別|ANY}〕
-
SDBユティリティ操作イベントを監査対象に定義する場合に指定します。ANYはすべてのSDBユティリティ操作イベントを監査対象とします。個々のSDBユティリティ操作イベント種別とANYは,個別に定義,および削除をします。例えば,PDSDBLOD,PDSDBROG,およびANYを定義した状態で,ANYだけをDROP AUDIT文で削除しても,PDSDBLODおよびPDSDBROGの定義は残ります(監査対象のままとなります)。
- 6)選択オプション::={ON オブジェクト名|BY AUTHORIZATION 認可識別子}
-
- ON オブジェクト名
-
このオプションは指定できません。操作種別にSDB_ACCESSまたはSDB_UTILITYを指定してON オブジェクト名を指定した場合,KFPA19680-E メッセージが出力されてエラーとなります。
- BY AUTHORIZATION 認可識別子
-
監査証跡を取得するイベント実行者を絞り込む場合に指定します。監査対象とするイベント実行者の認可識別子を指定してください。指定しない場合は,すべてのイベント実行者が対象となります。
SDBユティリティ操作イベントを指定している場合は,指定できません。指定した場合,KFPA19680-Eメッセージが出力されてエラーとなります。
- 12)SDBデータベース操作イベント種別::={FETCH 〔FETCHオプション〕
-
|STORE|MODIFY|ERASE|CLEAR|FETCHDB ALL}
SDBデータベース操作イベントを監査対象として定義する場合に指定します。SDBデータベース操作イベント種別とその監査イベントが発生する操作を次の表に示します。
表7‒8 SDBデータベース操作イベント種別とその監査イベントが発生する操作 SDBデータベース操作イベント種別
権限チェックの監査イベントが発生する操作(AUDITTYPEにPRIVILEGEを指定した場合)
イベントの最終結果の監査証跡を取得する監査イベントが発生する操作(AUDITTYPEにEVENTを指定した場合)
FETCH
なし
-
レコードの検索(FETCH)の実行
-
位置指示子の位置づけ(FIND)の実行
STORE
レコードの格納(STORE)の実行
MODIFY
レコードの更新(MODIFY)の実行
ERASE
レコードの削除(ERASE)の実行
CLEAR
レコードの一括削除の実行
FETCHDB ALL
複数レコードの検索(FETCHDB ALL)の実行
-
- 13)FETCHオプション::=FIRST
-
SDBデータベース操作イベント種別のFETCHオプションを指定します。
- FIRST
-
4V FMBまたはSD FMBのSDBデータベースを対象にした監査証跡取得オプションです。
FETCHはすべてのレコード検索をイベントの対象としますが,FIRSTを指定した場合,各レコード型に対して検索のイベントが成功した最初のレコードの監査証跡だけを取得し,以降の検索イベントで成功した同じレコード型の監査証跡は取得しません。ただし,同じレコード型であっても,レコード検索のイベントが失敗した場合は監査証跡を取得します。このオプションは,個別開始ごとにファミリ単位にルートレコードを含め,その配下の子レコードに対して適用されます。そのため,同じレコード型へのアクセスであっても,ルートレコードのキーが変わった場合(ルートレコードへの位置づけが発生した場合),イベントの対象として監査証跡が取得されます。
また,レコード検索処理の途中でこのオプションのイベント定義が有効になった場合,そのタイミングで同一レコード型に対する2回目以降の検索レコードは取得されません。
FIRSTは,4V AFMのSDBデータベースで指定しても無効になります。
FIRSTを指定する場合は,WHENEVERの指定をANYにする必要があります。操作種別でANYまたはSDB_ACCESSでANYを指定した場合,このオプションの指定は無効になります。また,FETCHとFETCH FIRSTの定義が同時に存在した場合は,FETCHの定義として動作します。このため,FETCH FIRSTの機能でイベントを取得するためには,操作種別でANYまたはSDB_ACCESSでANYを指定しないで,操作種別のイベントを個々に定義し,かつイベント種別のFETCHはFETCH FIRSTだけを定義する必要があります。
- 14)SDBユティリティ操作イベント種別::={PDSDBDEF|PDSDBLOD|PDSDBROG}
-
SDBユティリティ操作イベントを監査対象として定義します。SDBユティリティ操作イベント種別とその監査イベントが発生する操作を次の表に示します。
表7‒9 SDBユティリティ操作イベント種別とその監査イベントが発生する操作 SDBユティリティ操作イベント種別
権限チェックの監査イベントが発生する操作(AUDITTYPEにPRIVILEGEを指定した場合)
イベントの最終結果の監査証跡を取得する監査イベントが発生する操作(AUDITTYPEにEVENTを指定した場合)
PDSDBDEF
pdsdbdefコマンドの実行
同左
PDSDBLOD
pdsdblodコマンドの実行
PDSDBROG
pdsdbrogコマンドの実行
(3) SDBデータベース操作イベントのオペランドの指定と監査対象イベントの関係
SDBデータベース操作のイベント定義では,操作種別とそのほかのオペランドとの組み合わせによっては,監査証跡が出力されないことがあります。そのような定義の指定をした場合は,KFPA19680-Eメッセージが出力されます。
イベントタイプ,イベントサブタイプの指定とAUDITTYPEの指定可否を次の表に示します。
イベントタイプ(操作種別) |
イベントサブタイプ(SDBデータベース操作イベント種別) |
AUDITTYPEの指定可否 |
||
---|---|---|---|---|
PRIVILEGE |
EVENT |
ANY |
||
ANY |
該当しません。 |
△ |
〇 |
△ |
SDB_ACCESS |
FETCH |
× |
〇 |
△ |
STORE |
× |
〇 |
△ |
|
MODIFY |
× |
〇 |
△ |
|
ERASE |
× |
〇 |
△ |
|
CLEAR |
× |
〇 |
△ |
|
FETCHDB ALL |
× |
〇 |
△ |
|
ANY |
× |
〇 |
△ |
(4) SDBユティリティ操作イベントのオペランドの指定と監査対象イベントの関係
SDBユティリティ操作イベントのオペランドの指定と監査対象イベントの関係を次の表に示します。
項番 |
AUDITTYPEの指定 |
操作種別の指定 |
SDBユティリティ操作イベント種別の指定 |
選択オプションの指定 |
監査対象イベント |
---|---|---|---|---|---|
1 |
PRIVILEGE |
SDB_UTILITY |
PDSDBDEF |
なし |
pdsdbdefコマンド実行時のCONNECT権限チェックを監査対象イベントにします。 |
2 |
あり |
この指定の組み合わせはエラーになります。 |
|||
3 |
PDSDBLOD |
なし |
pdsdblodコマンド実行時のCONNECT権限チェックを監査対象イベントにします。 |
||
4 |
あり |
この指定の組み合わせはエラーになります。 |
|||
5 |
PDSDBROG |
なし |
pdsdbrogコマンド実行時のCONNECT権限チェックを監査対象イベントにします。 |
||
6 |
あり |
この指定の組み合わせはエラーになります。 |
|||
7 |
ANY |
なし |
項番1,3,5のすべてを監査対象イベントにします。 |
||
8 |
あり |
この指定の組み合わせはエラーになります。 |
|||
9 |
ANY |
指定なし |
なし |
項番1,3,5のすべてを監査対象イベントにします。 |
|
10 |
あり |
この指定をしても,項番7の項目は,監査対象イベントにはなりません。 |
|||
11 |
EVENT |
SDB_UTILITY |
PDSDBDEF |
なし |
pdsdbdefコマンドの次の操作を監査対象イベントにします。
|
12 |
あり |
この指定の組み合わせはエラーになります。 |
|||
13 |
PDSDBLOD |
なし |
pdsdblodコマンドの終了を監査対象イベントにします。 |
||
14 |
あり |
この指定の組み合わせはエラーになります。 |
|||
15 |
PDSDBROG |
なし |
pdsdbrogコマンドの終了を監査対象イベントにします。 |
||
16 |
あり |
この指定の組み合わせはエラーになります。 |
|||
17 |
ANY |
なし |
項番11,13,15のすべてを監査対象イベントにします。 |
||
18 |
あり |
この指定の組み合わせはエラーになります。 |
|||
19 |
ANY |
指定なし |
なし |
項番11,13,15のすべてを監査対象イベントにします。 |
|
20 |
あり |
この指定をしても,項番17の項目は,監査対象イベントにはなりません。 |
|||
21 |
ANY |
SDB_UTILITY |
PDSDBDEF |
なし |
項番1および11を監査対象イベントにします。 |
22 |
あり |
この指定の組み合わせはエラーになります。 |
|||
23 |
PDSDBLOD |
なし |
項番3および13を監査対象イベントにします。 |
||
24 |
あり |
この指定の組み合わせはエラーになります。 |
|||
25 |
PDSDBROG |
なし |
項番5および15を監査対象イベントにします。 |
||
26 |
あり |
この指定の組み合わせはエラーになります。 |
|||
27 |
ANY |
なし |
項番21,23,25のすべてを監査対象イベントにします。 |
||
28 |
あり |
この指定の組み合わせはエラーになります。 |
|||
29 |
ANY |
指定なし |
なし |
項番21,23,25のすべてを監査対象イベントにします。 |
|
30 |
あり |
この指定をしても,項番27の項目は,監査対象イベントにはなりません。 |