スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

23.9 監査証跡の絞り込み

監査証跡の絞り込みをすると,特定の監査証跡だけを取得できます。

監査証跡の絞り込みは,定義系SQLのCREATE AUDITで条件を定義し,必要に応じてDROP AUDITで削除できます。

<この節の構成>
(1) 選択項目
(2) 選択できる単位
(3) 選択項目の組み合わせ
(4) セキュリティ監査情報用バッファ
(5) セキュリティ監査情報用バッファに関するエラーが発生した場合のHiRDBの動作
(6) セキュリティ監査情報用バッファの状態遷移

(1) 選択項目

監査証跡の絞り込みの条件に指定できる選択項目を次の表に示します。

表23-29 監査証跡の絞り込みの条件に指定できる選択項目

選択項目 指定 内容 該当する監査証跡の
レコード項目
操作種別 必要 特定の操作種別で絞り込んで,監査証跡を取得する場合に指定します。
  • イベントタイプ
  • イベントサブタイプ
証跡種別 必要 証跡種別で絞り込んで監査証跡を取得する場合に指定します。
  • 監査証跡種別
イベント成否 必要 イベントの成否で絞り込んで,監査証跡を取得する場合に指定します。
  • イベント成否
オブジェクト 任意 特定のイベントの対象となったオブジェクトを絞り込んで,監査証跡を取得する場合に指定します。
  • オブジェクトの所有者
  • オブジェクト名称
  • オブジェクト種別

注※
オブジェクトを指定する場合,次の規則があります。
  • 存在しないオブジェクト名でも監査対象イベントの定義を指定できます(CREATE系でオブジェクトが作成された場合の証跡も絞り込めるようにするため)。
  • 監査対象イベントの定義に指定したオブジェクトが,他SQLによって削除されたり,名称変更などの属性変更があったとしても,監査対象イベントの定義は変更できません。例を次に示します。
    例1:表T1に監査対象イベントの定義を指定していて,表名称をT1からT2に変更した場合,監査対象イベントの定義は表T1を指定したままとなります。
    例2:表T1に監査対象イベントの定義を指定していて,DROP TABLEで表T1が削除された場合,監査対象イベントの定義はそのまま残ります。
  • 権限チェック証跡の場合,権限チェックの対象オブジェクトが,イベントの対象オブジェクトと一致した場合だけ証跡を取得します。オブジェクトによる絞り込みをして監査証跡を取得する場合は,イベント終了時の監査証跡を取得することをお勧めします。オブジェクトによって絞り込んだ場合の権限チェックの出力有無を次の表に示します。

    表23-30 オブジェクトによって絞り込んだ場合の権限チェックの出力有無

    使用した権限 オブジェクトの有無 絞り込めるオブジェクト
    DBA なし なし
    SCH なし なし
    CNT なし なし
    RDA あり(RDA) 左記のオブジェクト
    SEL あり(FTB,LST,TBL,VIW) 左記のオブジェクト
    INS あり(FTB,TBL,VIW) 左記のオブジェクト
    DEL あり(FTB,TBL,VIW) 左記のオブジェクト
    UPD あり(FTB,TBL,VIW) 左記のオブジェクト
    AUD なし なし
    SYS あり(AUF,TBL)
    OWN あり(FID,FNC,FSV,FTB,IDX,PRC,SCH,SEQ,TBL,TRG,TYP,VIW) 左記のオブジェクト

(凡例)
−:監査機能実行中であれば,監査対象イベントの定義に関係なく無条件に監査証跡を出力します。

使用した権限,及びオブジェクトの有無の記号の意味については,「表23-19 監査証跡表の列構成」のUSED_PRIVILEGE及びOBJECT_TYPEを参照してください。

注※
監査人セキュリティイベントの場合は,セキュリティ監査機能が実行中であれば,監査対象イベントの定義に関係なく,無条件に監査証跡を出力します。
 

絞り込み対象のオブジェクトにディクショナリ表を指定した場合,オブジェクトの種別,認可識別子,及び表識別子は次の表のように指定してください。

表23-31 ディクショナリ表を指定した場合のオブジェクトの種別,認可識別子,及び表識別子

操作種別 オブジェクト種別 認可識別子 表識別子
オブジェクト操作イベント VIEW MASTER システムが使用するディクショナリ表を除いたディクショナリ表の表識別子
ユティリティ操作イベント TABLE 省略 すべてのディクショナリ表の表識別子

注※
省略した場合でも,ディクショナリ表SQL_AUDITSのオブジェクトの所有者の列には,'(Data dictionary)'が格納されます。

(2) 選択できる単位

選択できる単位は次のとおりです。

オブジェクト操作イベントの対象オブジェクトが表"USER1"."T1"の場合の証跡と,オブジェクト定義イベントのイベント終了証跡を監査対象とする場合は,次のように定義します。

CREATE AUDIT AUDITTYPE EVENT FOR ACCESS ON TABLE "USER1"."T1"
CREATE AUDIT AUDITTYPE EVENT FOR DEFINITION

上記の監査対象イベントの定義を行った場合,監査証跡取得の有無は次のようになります。

取得される証跡:
  • 表"USER1"."T1"を検索した場合のイベント終了証跡
  • CREATE系実行時のイベント終了証跡

取得されない証跡:
  • 表"USER1"."T1"以外を検索した場合の証跡
  • 接続系イベントの証跡
  • ユティリティ操作イベントの証跡

(3) 選択項目の組み合わせ

選択項目は,組み合わせによっては意味のないものがあります。意味のない組み合わせについては,実行したCREATE AUDITがエラーになります。

例えば,セッションセキュリティイベントのCONNECTに対して,オブジェクト表"USER1"."T1"を指定した場合などです。

(4) セキュリティ監査情報用バッファ

セキュリティ監査機能を使用する場合,セキュリティ監査情報用バッファが必要となります。そのため,セキュリティ監査情報用バッファの共用メモリの見積もりが必要です。

ユーザが指定値を見積もり,システム定義のpd_audit_def_buffer_sizeオペランドに指定する方法と,システムが自動的に計算する方法(pd_audit_def_buffer_sizeオペランドを省略)の二種類があります。システムが自動的に計算する方法では,システムが余裕値を加算してメモリを確保します。メモリサイズは,絞り込みの監査対象となるオブジェクトのエントリ数で決まるため,既に定義されているオブジェクトのエントリ数に100を加算するか,又は1.2倍し,どちらか大きいほうのエントリ数分確保します。余裕値を次に示します。

既に絞り込みの監査対象として定義しているオブジェクトのエントリ数 条件 余裕値
0 なし 絞り込みの監査対象オブジェクト100エントリ分
1以上 N+100>N×1.2となる場合 絞り込みの監査対象オブジェクト100エントリ分
N+100≦N×1.2となる場合 絞り込みの監査対象オブジェクトN×0.2エントリ数分

(凡例)
N:既に絞り込みの監査対象として定義しているオブジェクトのエントリ数

 

セキュリティ監査情報用バッファ作成時に,メモリ不足のために必要なサイズが確保できない場合は,表23-32及び表23-33のように対処する必要があります。

注意
セキュリティ監査情報用バッファに,すべての監査対象イベントの定義情報が格納されない場合,ディクショナリ表へのアクセスが発生するため,処理が遅くなります。
 

表23-32 セキュリティ監査情報用バッファ作成時のHiRDBの動作と対処方法(HiRDB開始時)

pd_audit_def_buffer_sizeオペランドの指定 共用メモリの確保 HiRDBの動作 対処
あり 失敗 開始しません。このとき,KFPD00031-Eメッセージが出力されます。 次のどれかの対処をしてください。
  • OSの共用メモリを増やす
  • OSの共用メモリの空き領域を作る
  • pd_audit_def_buffer_sizeオペランドの指定値を小さくする
成功 開始します。ただし,セキュリティ監査情報用バッファに,すべての監査対象イベントの定義情報が格納されない場合,KFPD00032-Wメッセージが出力されます。 性能が劣化することがあるため,pd_audit_def_buffer_sizeオペランドの値を再度見積もってください。
なし 失敗 開始しますが,セキュリティ監査情報用バッファは作成されません。このとき,KFPD00032-Wメッセージが出力されます。 性能が劣化することがあるため,次のどちらかの対処をしてください。
  • OSの共用メモリを増やす
  • OSの共用メモリの空き領域を作る
上記の対処ができない場合は,pd_audit_def_buffer_sizeオペランドの値に,システムが自動的に計算する値よりも小さい値を指定してください。
成功 開始します。 対処する必要はありません。

表23-33 セキュリティ監査情報用バッファ作成時のHiRDBの動作と対処方法(HiRDB稼働中)

pd_audit_def_buffer_sizeオペランドの指定 セキュリティ監査情報用バッファの監査対象イベントの定義情報のあふれ HiRDBの動作 対処
あり あり セキュリティ監査情報用バッファに,格納できる分だけ監査対象イベントの定義情報を格納して処理を続行します。このとき,KFPD00032-Wメッセージを出力します。 KFPD00032-Wメッセージに従ってpd_audit_def_buffer_sizeオペランドの値を再度見積もってください。対処しないと,性能が劣化することがあります。
なし セキュリティ監査情報用バッファに,すべての監査対象イベントの定義情報を格納して処理を続行します。 対処する必要はありません。
なし あり セキュリティ監査情報用バッファに,格納できる分だけ監査対象イベントの定義情報を格納して処理を続行します。このとき,KFPD00032-Wメッセージを出力します。 HiRDBを再開始してください。システムがサイズを再計算して,セキュリティ監査情報用バッファを作成します。再開始したときにKFPD00032-Wメッセージが出力された場合,次のどちらかの対処をしてください。
  • OSの共用メモリを増やす
  • OSの共用メモリの空き領域を作る
上記の対処ができない場合は,pd_audit_def_buffer_sizeオペランドの値に,システムが自動的に計算する値よりも小さい値を指定してください。
なし セキュリティ監査情報用バッファに,すべての監査対象イベントの定義情報を格納して処理を続行します。 対処は必要ありません。

 


pd_audit_def_buffer_sizeオペランドを省略した場合,指定値はシステムが自動的に計算しますが,HiRDBの開始から終了までの間に監査対象イベントの定義が増えたときは,次回のHiRDBの開始でのセキュリティ監査情報用バッファのサイズが増えます。したがって,HiRDBの開始,終了を繰り返すと,セキュリティ監査情報用バッファのサイズが増えることがあります。

(5) セキュリティ監査情報用バッファに関するエラーが発生した場合のHiRDBの動作

セキュリティ監査情報用バッファに関するエラーが発生した場合のHiRDBの動作について説明します。

(a) HiRDB開始時

セキュリティ監査情報用バッファはHiRDB開始時に作成されますが,このときエラーが発生することがあります。エラーが発生した場合,セキュリティ監査情報用バッファをシステムが自動計算する場合と,ユーザが指定値を見積もる場合とでHiRDBの動作は変わります。

HiRDB開始時のエラー要因とHiRDBの処理を次の表に示します。

表23-34 HiRDB開始時のエラー要因とHiRDBの処理

エラー要因 HiRDBの処理
pd_audit_def_buffer_sizeオペランドを省略 pd_audit_def_buffer_sizeオペランドを指定
領域確保エラー バッファ用共用メモリ サイズ0で開始 開始できません
ディクショナリ検索用プロセス固有メモリ サイズ0で開始 共用メモリ確保後,処理を続行
通信障害 サイズ0で開始 共用メモリ確保後,処理を続行
ディクショナリアクセスエラー ロールバック不要 サイズ0で開始 共用メモリ確保後,処理を続行
ロールバック要 開始できません 共用メモリ確保後,処理を続行

注※
HiRDB/パラレルサーバの場合,一定回数の再開始をしてもエラーが解消されないときは,フロントエンドサーバをSUSPEND状態にします。
HiRDB/シングルサーバの場合はすぐに異常終了します。
(b) HiRDB稼働中

監査対象イベントの定義情報の判定中にエラーが発生した場合は,監査対象イベントの定義に関係なく,該当する監査証跡を出力します。

SQL実行時にエラーが発生した場合も監査証跡を出力しますが,監査証跡出力時の監査対象イベントの定義情報取得時にもエラーが発生することがあります。エラーの組み合わせと,設定されるSQLコード及びロールバック要否を次の表に示します。なお,監査証跡出力時にエラーが発生した場合は,そのエラーを無視して処理を続行します。

表23-35 エラーの組み合わせと,設定されるSQLコード及びロールバック要否

監査対象イベントの定義取得前の状態 監査対象イベントの定義取得時の状態 設定されるSQLコード ロールバック要否
正常 正常 0 不要
ロールバック要エラー 監査対象イベントの定義取得時のSQLコード
ロールバック不要エラー 監査対象イベントの定義取得前のSQLコード 不要
ロールバック要エラー 正常 監査対象イベントの定義取得前のSQLコード
ロールバック要エラー 監査対象イベントの定義取得前のSQLコード
ロールバック不要エラー 監査対象イベントの定義取得前のSQLコード
ロールバック不要エラー 正常 監査対象イベントの定義取得前のSQLコード 不要
ロールバック要エラー 監査対象イベントの定義取得前のSQLコード
ロールバック不要エラー 監査対象イベントの定義取得前のSQLコード 不要

(6) セキュリティ監査情報用バッファの状態遷移

セキュリティ監査情報用バッファは,イベントが発生すると,無効な状態になったり,有効な状態になったりします。イベントが発生した場合のセキュリティ監査情報用バッファの状態遷移を次に示します。

イベント セキュリティ監査情報用バッファの状態
初期状態
(HiRDB開始前)
無効状態
(情報未設定)
有効状態
(情報設定)
無効状態
(古い情報が残っている)
1 2 3 4
HiRDBの開始処理完了 →2
セキュリティ監査情報用バッファへのアクセス →3 →3 →3
監査対象イベントの定義変更時
(CREATE AUDIT,DROP AUDIT実行時)
→2 →4 →4

(凡例)
→n:該当するイベントが発生すると,番号nの状態になることを示しています。
−:該当しません。