スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

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

CREATE AUDIT監査対象イベントの定義

機能

監査証跡として記録する監査対象イベント,及びその対象を定義します。

使用権限

監査権限を持つユーザ
監査権限を持つユーザが,CREATE AUDITの各定義文を実行できます。

形式

項番 形   式
1 CREATE AUDIT
   〔AUDITTYPE {PRIVILEGE | EVENT | ANY}〕
2    FOR 操作種別
9    〔選択オプション〕
3    〔WHENEVER {SUCCESSFUL|UNSUCCESSFUL|ANY}〕

オペランド

1)〔AUDITTYPE {PRIVILEGE | EVENT | ANY}〕
権限チェック時の監査証跡を取得するか,イベントの最終結果の監査証跡を取得するかを指定します。
PRIVILEGE
権限チェック時の監査証跡を取得します。
EVENT
イベントの最終結果の監査証跡を取得します。
ANY
上記のすべての種別についての監査証跡を取得します。
PRIVILEGE,EVENT,及びANYは,個別で定義,及び削除をします。例えば,同じ監査イベントに対して,PRIVILEGE,EVENT,及びANYをすべて定義した状態で,ANYだけをDROP AUDITで削除しても,PRIVILEGE,及びEVENTの定義は残ります(監査対象のままとなります)。

2)操作種別::= ANY
 | SESSION 〔{セッション種別|ANY}〕
 | PRIVILEGE 〔{権限操作種別|ANY}〕
 | DEFINITION 〔{オブジェクト定義イベント種別|ANY}〕
 | ACCESS  〔{オブジェクト操作イベント種別|ANY}〕
 | UTILITY 〔{ユティリティイベント種別|ANY}〕
監査対象とする操作種別を指定します。個々の操作種別とANYは,個別に定義,及び削除をします。例えば,SESSION,PRIVILEGE,及びANYを定義した状態で,ANYだけをDROP AUDITで削除しても,SESSION,及びPRIVILEGEの定義は残ります(監査対象のままとなります)。
ANY
すべての操作種別を監査対象とします。
SESSION 〔{セッション種別|ANY}〕
セッションセキュリティイベントを監査対象にする場合に指定します。
ANYはすべてのセッションセキュリティイベントを監査対象とします。個々のセッション種別とANYは,個別に定義,及び削除をします。例えば,CONNECT,AUTHORIZATION,及びANYを定義した状態で,ANYだけをDROP AUDITで削除しても,CONNECT,及びAUTHORIZATIONの定義は残ります(監査対象のままとなります)。
PRIVILEGE 〔{権限操作種別|ANY}〕
権限管理イベントを監査対象にする場合に指定します。ANYはすべての権限管理イベントを監査対象とします。個々の権限操作種別とANYは,個別で定義,及び削除をします。例えば,GRANT,REVOKE,及びANYを定義した状態で,ANYだけをDROP AUDITで削除しても,GRANT,及びREVOKEの定義は残ります(監査対象のままとなります)。
DEFINITION 〔{オブジェクト定義イベント種別|ANY}〕
定義系SQLイベントを監査対象にする場合に指定します。ANYはすべての定義系SQLイベントを監査対象とします。個々のオブジェクト定義イベント種別とANYは,個別で定義,及び削除をします。例えば,CREATE,DROP,及びANYを定義した状態で,ANYだけをDROP AUDITで削除しても,CREATE,及びDROPの定義は残ります(監査対象のままとなります)。
ACCESS  〔{オブジェクト操作イベント種別|ANY}〕
操作系SQLイベントを監査対象にする場合に指定します。ANYはすべての操作系SQLイベントを監査対象とします。個々のオブジェクト操作種別とANYは,個別で定義,及び削除をします。例えば,SELECT,INSERT,及びANYを定義した状態で,ANYだけをDROP AUDITで削除しても,SELECT,及びINSERTの定義は残ります(監査対象のままとなります)。
UTILITY 〔{ユティリティイベント種別|ANY}〕
ユティリティイベントを監査対象に定義する場合に指定します。ANYはすべてのユティリティイベントを監査対象とします。個々のユティリティイベント種別とANYは,個別で定義,及び削除をします。例えば,PDLOAD,PDRORG,及びANYを定義した状態で,ANYだけをDROP AUDITで削除しても,PDLOAD,及びPDRORGの定義は残ります(監査対象のままとなります)。

3)〔WHENEVER {SUCCESSFUL|UNSUCCESSFUL|ANY}〕
監査イベントの最終結果の成否又は権限チェックの成否によって,その監査イベントを監査対象とするかどうかを指定します。WHENEVERの指定に対して取得する監査証跡を次の表に示します。

表3-10 WHENEVERの指定に対して取得する監査証跡

WHENEVER
の指定
AUDITTYPEにPRIVILEGE又は
ANYを指定した場合
AUDITTYPEにEVENT又は
ANYを指定した場合
SUCCESSFUL 権限チェックが成功した場合だけ,権限チェック時の監査証跡を取得します。 監査イベントが成功した場合だけ,監査イベントの最終結果の監査証跡を取得します。
UNSUCCESSFUL 権限チェックが失敗した場合だけ,権限チェック時の監査証跡を取得します。 監査イベントが失敗した場合だけ,監査イベントの最終結果の監査証跡を取得します。
ANY 権限チェックの成否に関係なく権限チェック時の監査証跡を取得します。 監査イベントの成否に関係なく監査イベントの最終結果の監査証跡を取得します。
イベントの最終結果によっては一部失敗という結果があります。一部失敗時の監査証跡はSUCCESSFUL,UNSUCCESSFUL,ANYのどれを指定しても出力します。
SUCCESSFUL,UNSUCCESSFUL,及びANYは,個別で定義,及び削除をします。例えば,同じ監査イベントに対して,SUCCESSFUL,UNSUCCESSFUL,及びANYをすべて定義した状態で,ANYだけをDROP AUDITで削除しても,SUCCESSFUL,及びUNSUCCESSFULの定義は残ります(監査対象のままとなります)。

4)セッション種別::={CONNECT|DISCONNECT|AUTHORIZATION}
監査対象とするHiRDBに対する接続,接続中のユーザ変更,又は切断操作を指定します。セッション種別とその監査イベントが発生する操作を次の表に示します。

表3-11 セッション種別とその監査イベントが発生する操作

セッション種別 権限チェックの監査イベントが
発生する操作(AUDITTYPEにPRIVILEGEを指定した場合)
イベントの最終結果の監査証跡を取得する監査イベントが発生する操作(AUDITTYPEにEVENTを指定した場合)
CONNECT HiRDBへの接続 同左
DISCONNECT なし HiRDBからの切断
AUTHORIZATION SET SESSION AUTHORIZATION文の実行 同左

5)権限操作種別::={GRANT|REVOKE}
権限に関する操作を監査対象とする場合に指定します。権限操作種別とその監査イベントが発生する操作を次の表に示します。

表3-12 権限操作種別とその監査イベントが発生する操作

権限操作種別 権限チェックの監査イベントが
発生する操作(AUDITTYPEにPRIVILEGEを指定した場合)
イベントの最終結果の監査証跡を取得する監査イベントが発生する操作(AUDITTYPEにEVENTを指定した場合)
GRANT GRANTの実行 同左
REVOKE REVOKEの実行 同左

6)オブジェクト定義イベント種別::={CREATE|DROP|ALTER}
監査対象とするオブジェクトの作成,削除,又は定義変更の操作を指定します。オブジェクト定義イベント種別とその監査イベントが発生する操作を次の表に示します。

表3-13 オブジェクト定義イベント種別とその監査イベントが発生する操作

オブジェクト定義イベント種別 権限チェックの監査イベントが
発生する操作(AUDITTYPEにPRIVILEGEを指定した場合)
イベントの最終結果の監査証跡を取得する監査イベントが発生する操作(AUDITTYPEにEVENTを指定した場合
CREATE 次のSQLの実行
  • ALTER PROCEDURE※1
  • ALTER ROUTINE※1
  • ALTER TRIGGER※1
  • ASSIGN LIST文
  • CREATE ALIAS
  • CREATE CONNECTION SECURITY
  • CREATE FOREIGN INDEX
  • CREATE FOREIGN TABLE
  • CREATE FUNCTION
  • CREATE INDEX
  • CREATE PROCEDURE
  • CREATE PUBLIC FUNCTION
  • CREATE PUBLIC PROCEDURE
  • CREATE SCHEMA
  • CREATE SEQUENCE
  • CREATE SERVER
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE TYPE
  • CREATE USER MAPPING
  • CREATE VIEW
  • CREATE PUBLIC VIEW
  • UAPからのCALL文※2
同左
DROP 次のSQLの実行
  • DROP ALIAS
  • DROP CONNECTION SECURITY
  • DROP DATA TYPE
  • DROP FOREIGN INDEX
  • DROP FOREIGN TABLE
  • DROP FUNCTION
  • DROP INDEX
  • DROP LIST文
  • DROP PROCEDURE
  • DROP PUBLIC FUNCTION
  • DROP PUBLIC PROCEDURE
  • DROP SCHEMA
  • DROP SEQUENCE
  • DROP SERVER
  • DROP TABLE
  • DROP TRIGGER
  • DROP USER MAPPING
  • DROP VIEW
  • DROP PUBLIC VIEW
  • REVOKE※3
同左
ALTER 次のSQLの実行
  • ALTER INDEX
  • ALTER PROCEDURE
  • ALTER ROUTINE
  • ALTER TABLE
  • ALTER TRIGGER
  • COMMENT
同左
注※1
内部的にCREATE PROCEDUREが実行されます。
注※2
呼び出し対象となるプロシジャのインデクス情報が無効な場合,呼び出しごとに内部的にCREATE PROCEDUREが実行されます。このような場合,ALTER PROCEDURE又はALTER ROUTINEで呼び出し対象となるプロシジャのSQLオブジェクトを再作成することで,呼び出しごとに内部的に実行されるCREATE PROCEDUREが実行されなくなります。
注※3
ビューの基表からのSELECT権限が削除された場合,ビュー表を削除するために内部的にDROP VIEWが実行されます。
 
オブジェクト定義イベントで行われる権限チェックには,以下のようなものがあります。
  • 監査イベントでのスキーマ定義権限チェック
  • ストアドプロシジャ定義時,又はストアドプロシジャのSQLオブジェクト再作成時での,SQL手続き文中の操作系SQL及び制御系SQLのアクセス権限チェック
  • メンバに手続きを含むユーザ定義型の定義時,又はユーザ定義型のメンバのSQLオブジェクト再作成時での,SQL手続き文中の操作系SQL及び制御系SQLのアクセス権限チェック
  • トリガ定義時,又はトリガのSQLオブジェクト再作成時での,トリガSQL文中の操作系SQL及び制御系SQLのアクセス権限チェック
  • ビュー定義時の基表へのアクセス権限チェック

7)オブジェクト操作イベント種別::=
{SELECT|INSERT|UPDATE|DELETE|PURGE|ASSIGN |CALL|LOCK|NEXT VALUE}
監査対象とするオブジェクトに対する操作を指定します。オブジェクト操作イベントの監査対象定義を指定した場合,手続き及びトリガSQL文中のオブジェクト操作も監査対象となります。オブジェクト操作イベント種別とその監査イベントが発生する操作を次の表に示します。

表3-14 オブジェクト操作イベント種別とその監査イベントが発生する操作

オブジェクト操作イベント種別 権限チェックの監査イベントが
発生する操作(AUDITTYPEにPRIVILEGEを指定した場合)
イベントの最終結果の監査証跡を取得する監査イベントが発生する操作(AUDITTYPEにEVENTを指定した場合)
SELECT
  • 1行SELECT文の実行
  • 問合せ指定を指定したINSERT文の実行
  • 探索条件に副問合せを指定したUPDATE文の実行
  • 探索条件に副問合せを指定したDELETE文の実行
  • リストに対する問合せの実行

  • 同左
INSERT
  • INSERT文の実行

  • 同左
UPDATE
  • UPDATE文の実行

  • 同左
DELETE
  • DELETE文の実行

  • 同左
PURGE
  • PURGE TABLE文の実行

  • 同左
CALL
  • 権限チェックイベントはありません

  • CALL文による手続の実行
LOCK
  • LOCK文の実行

  • 同左
ASSIGN
  • ASSIGN LIST文形式1の実行

  • ASSIGN LIST文形式1の実行
  • ASSIGN LIST文形式2の実行
NEXT VALUE
  • NEXT VALUE式の実行

  • 同左
注※
動的SELECT文を含みます。
次のSQL文中での問合せは,オブジェクト操作イベント種別がSELECTで定義されている場合に,監査証跡を出力します。
  • INSERT文で指定した問合せ指定
  • UPDATE文及びDELETE文の探索条件中に指定した副問合せ
  • リストに対する問合せ

8)ユティリティイベント種別::=
{PDLOAD|PDRORG|PDEXP|PDCONSTCK}
ユティリティイベントを監査対象として定義します。ユティリティイベント種別とその監査イベントが発生する操作を次の表に示します。

表3-15 ユティリティイベント種別とその監査イベントが発生する操作

ユティリティ
イベント種別
権限チェックの監査イベントが
発生する操作(AUDITTYPEにPRIVILEGEを指定した場合)
イベントの最終結果の監査証跡を取得する監査イベントが発生する操作(AUDITTYPEにEVENTを指定した場合)
PDLOAD pdloadの実行 同左
PDRORG pdrorgの実行 同左
PDEXP pdexp,pddefrevの実行 同左
PDCONSTCK pdconstckの実行 同左

9)選択オプション::= ON オブジェクト名
監査証跡を取得するオブジェクトを絞り込む場合に指定します。監査証跡の取得対象とするオブジェクトを指定します。各オブジェクト名の名称規則については,「1.1.7 名前の指定」を参照してください。
オブジェクトにパブリックビュ−,パブリック手続き,又はパブリック関数を指定した場合は,認可識別子をPUBLICと指定してください。
ディクショナリ表を指定する場合は,オブジェクト名にTABLEを指定し,認可識別子を省略して表識別子だけを指定してください。その場合,ディクショナリ表SQL_AUDITSのオブジェクト所有者の列には'(Data dictionary)'を格納します。

規則

  1. セキュリティ監査機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
  2. 実際に監査証跡を記録するには,システム定義のpd_auditオペランドの設定,又はpdaudbeginコマンドを実行する必要があります。
  3. CREATE AUDIT,及びDROP AUDITを実行した際の監査証跡は,セキュリティ監査機能が有効な場合は必ず記録します。

留意事項

  1. CREATE AUDITは,OLTP下のX/Openに従ったUAPからは指定できません。
  2. 監査対象イベントの定義では,操作種別とそのほかのオペラントとの組み合わせによって,証跡が出力されない場合があります。そのような定義の指定をした場合は,KFPA19680-Eメッセージが出力されます。次の表に指定可否の組み合わせの詳細を示します。

    表3-16 イベントタイプ,イベントサブタイプとAUDITTYPEの指定可否

    イベントタイプ イベント
    サブタイプ
    AUDITTYPE指定可否
    PRIVILEGE EVENT ANY
    ANY ※1※2 ※1※2
    SESSION DISCONNECT × ※2
    ANY ※2 ※2
    上記以外のすべて
    PRIVILEGE すべて
    DEFINITION すべて
    ACCESS CALL × ※1
    ANY ※1 ※1
    上記以外のすべて
    UTILITY すべて
    (凡例)
    −:該当しません。
    ○:指定できます。
    ×:指定できません(KFPA19680-Eメッセージが出力されます)。
    △:指定できますが,証跡が出力されない場合があります。
    注※1
    イベントCALLの権限チェックの証跡は出力されません。
    注※2
    イベントDISCONNECTの権限チェックの証跡は出力されません。

    表3-17 イベントタイプ,イベントサブタイプとオブジェクト名の指定可否(1/2)

    イベント
    タイプ
    イベント
    サブタイプ
    ALIAS FOREIGN
    INDEX
    FOREIGN
    TABLE
    FUNCTION INDEX LIST PROCEDURE
    ANY
    SESSION すべて × × × × × × ×
    PRIVILEGE GRANT × × × × × ×
    REVOKE × × × × × ×
    ANY × × × × × ×
    DEFINITION CREATE ×
    DROP ×
    ALTER × × ×
    ANY ×
    ACCESS SELECT × × × ×
    INSERT × × × × ×
    UPDATE × × × × ×
    DELETE × × × × ×
    PURGE × × × × × ×
    ASSIGN × × × × × ×
    CALL × × × × × ×
    LOCK × × × × ×
    NEXT VALUE × × × × × × ×
    ANY × × ×
    UTILITY PDLOAD × × × × × × ×
    PDRORG × × × × × × ×
    PDEXP × × × × ×
    PDCONSTCK × × × × × × ×
    ANY × × × × ×
    (凡例)
    −:該当しません。
    ○:指定できます。
    ×:指定できません(KFPA19680-Eメッセージが出力されます)。
    △:指定できますが,証跡が出力されない場合があります。

    表3-18 イベントタイプ,イベントサブタイプとオブジェクト名の指定可否(2/2)

    イベント
    タイプ
    イベント
    サブタイプ
    RDAREA SCHEMA SERVER TABLE TRIGGER TYPE USER
    MAPPING
    VIEW SEQUENCE
    ANY
    SESSION すべて × × × × × × × × ×
    PRIVILEGE GRANT × × × × × × ×
    REVOKE × × × × × × ×
    ANY × × × × × × ×
    DEFINITION CREATE
    DROP ×
    ALTER × × × × ×
    ANY
    ACCESS SELECT × × × × × × ×
    INSERT × × × × × × ×
    UPDATE × × × × × × ×
    DELETE × × × × × × ×
    PURGE × × × × × × × ×
    ASSIGN × × × × × × × ×
    CALL × × × × × × × × ×
    LOCK × × × × × × ×
    NEXT VALUE × × × × × × × ×
    ANY × × × × × ×
    UTILITY PDLOAD × × × × × × ×
    PDRORG × × × × × × ×
    PDEXP × × × × × ×
    PDCONSTCK × × × × × × × ×
    ANY × × × ×
    (凡例)
    −:該当しません。
    ○:指定できます。
    ×:指定できません(KFPA19680-Eメッセージが出力されます)。
    △:指定できますが,証跡が出力されない場合があります。
  3. AUDITTYPE句,FOR <操作種別>及び各種別,WHENEVER句の中にあるANY指定を定義している状態でバージョンアップする場合,個々の種別が増えたときはすべて監査対象に含まれます。
    例えば,CREATE AUDIT FOR ANY を定義している状態で,バージョンアップをして操作種別が新たに増えた場合,その操作種別も自動的に監査対象になります。
  4. 既に定義されている監査対象イベントの定義をCREATE AUDIT文で実行することはできません。KFPA11908-Eメッセージが出力されます。

使用例

  1. すべての監査イベントの権限チェック時を監査対象として定義します。
     
      CREATE AUDIT FOR ANY WHENEVER ANY
     
  2. HiRDBへの接続の権限チェック時を監査対象として定義します。
     
      CREATE AUDIT FOR SESSION CONNECT
     
  3. GRANT文実行の権限チェック時を監査対象として定義します。
     
      CREATE AUDIT FOR PRIVILEGE GRANT
     
  4. オブジェクト作成の権限チェック時を監査対象として定義します。
     
      CREATE AUDIT FOR DEFINITION CREATE
     
  5. INSERTの権限チェック時を監査対象として定義します。
     
      CREATE AUDIT FOR ACCESS INSERT
     
  6. すべての監査イベントを監査対象として定義します。
     
      CREATE AUDIT AUDITTYPE ANY FOR ANY
     
  7. すべての監査イベントのイベント終了時を監査対象として定義します。
     
      CREATE AUDIT AUDITTYPE EVENT FOR ANY
     
  8. 監査証跡の取得対象オブジェクトを表USER1.T1に絞り込みます。
     
      CREATE AUDIT AUDITTYPE EVENT FOR ANY ON TABLE "USER1"."T1"