監査機能アクティビティーの制御の説明の一つとして、 次のような簡単なシナリオを用いてみましょう。 あるユーザー、newton は、 表を接続しかつ作成する testapp と呼ばれるアプリケーションを実行します。 この同じアプリケーションは、下記に説明されているそれぞれの例の中で使用されるものです。
次のような極端な例を提示することから始めます。 それは、すべての成功するかつ不成功の監査イベントを監査することを決定した場合で、 次のような方法で監査機能を構成します。
db2audit configure scope all status both
注: | これは、すべての考えられる監査可能なイベントに対して監査レコードを作成します。 結果として、多くの監査レコードが監査ログに書き込まれ、 それはデータベース・マネージャーのパフォーマンスを減少させます。 この極端なケースは、デモンストレーション目的のためだけにここで示されていて、 上記に示すコマンドを指定して監査機能を構成することは勧められていません。 |
この構成 ("db2audit start" を使用) を指定した監査機能を開始して、 それから testapp アプリケーションを実行した後で、 次のレコードが監査ログに生成され配置されます。 このログから監査レコードを抽出することによって、 下記のレコードがアプリケーションで実行される 2 つの処置のために生成されるのを確認するでしょう。
timestamp=1998-06-24-08.42.10.555345;category=CONTEXT; audit event=CONNECT;event correlator=2;database=FOO; application id=*LOCAL.newton.980624124210; application name=testapp; timestamp=1998-06-24-08.42.10.944374;category=VALIDATE; audit event=AUTHENTICATION;event correlator=2;event status=0; database=FOO;userid=boss;authid=BOSS;execution id=newton; application id=*LOCAL.newton.980624124210;application name=testapp; auth type=SERVER; timestamp=1998-06-24-08.42.11.527490;category=VALIDATE; audit event=CHECK_GROUP_MEMBERSHIP;event correlator=2; event status=-1092;database=FOO;userid=boss;authid=BOSS; execution id=newton;application id=*LOCAL.newton.980624124210; application name=testapp;auth type=SERVER; timestamp=1998-06-24-08.42.11.561187;category=VALIDATE; audit event=CHECK_GROUP_MEMBERSHIP;event correlator=2; event status=-1092;database=FOO;userid=boss;authid=BOSS; execution id=newton;application id=*LOCAL.newton.980624124210; application name=testapp;auth type=SERVER; timestamp=1998-06-24-08.42.11.594620;category=VALIDATE; audit event=CHECK_GROUP_MEMBERSHIP;event correlator=2; event status=-1092;database=FOO;userid=boss;authid=BOSS; execution id=newton;application id=*LOCAL.newton.980624124210; application name=testapp;auth type=SERVER; timestamp=1998-06-24-08.42.11.622984;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=2;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; object name=FOO;object type=DATABASE;access approval reason=DATABASE; access attempted=CONNECT; timestamp=1998-06-24-08.42.11.801554;category=CONTEXT; audit event=COMMIT;event correlator=2;database=FOO;userid=boss; authid=BOSS;application id=*LOCAL.newton.980624124210; application name=testapp; timestamp=1998-06-24-08.42.41.450975;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=2;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;object schema=NULLID; object name=SQLC28A1;object type=PACKAGE; access approval reason=OBJECT;access attempted=EXECUTE;
timestamp=1998-06-24-08.42.41.476840;category=CONTEXT; audit event=EXECUTE_IMMEDIATE;event correlator=3;database=FOO; userid=boss;authid=BOSS;application id=*LOCAL.newton.980624124210; application name=testapp;package schema=NULLID;package name=SQLC28A1; package section=203;text=create table audit(c1 char(10), c2 integer); timestamp=1998-06-24-08.42.41.539692;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=3;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;package section=0; object schema=BOSS;object name=AUDIT;object type=TABLE; access approval reason=DATABASE;access attempted=CREATE; timestamp=1998-06-24-08.42.41.570876;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=3;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;package section=0; object name=BOSS;object type=SCHEMA;access approval reason=DATABASE; access attempted=CREATE; timestamp=1998-06-24-08.42.41.957524;category=OBJMAINT; audit event=CREATE_OBJECT;event correlator=3;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;package section=0; object schema=BOSS;object name=AUDIT;object type=TABLE; timestamp=1998-06-24-08.42.42.018900;category=CONTEXT;audit event=COMMIT; event correlator=3;database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;
ご覧になってわかるように、 すべての考えられる監査イベントおよびタイプの監査を要求する監査構成から生成される、 有効な数の監査レコードがあります。
大部分のケースにおいて、監査することを望むイベントがより多くの制限付き、 または焦点が合った視点での監査機能を形成します。 たとえば、失敗するイベントの監査だけを望む場合もあります。 この場合、監査機能は次のように構成されます。
db2audit configure scope audit,checking,objmaint,secmaint,sysadmin, validate status failure
注: | この構成は、初期の監査構成かまたは監査構成がリセットされた時点に生じるものです。 |
この構成を指定した監査機能を開始して、 それから testapp アプリケーションを実行した後で、 次のレコードが監査ログに生成され配置されます。 (この場合、testapp がそれ以前に実行されていないことを想定しています。) このログから監査レコードを抽出することによって、 下記のレコードがアプリケーションで実行される 2 つの処置のために生成されるのを確認するでしょう。
timestamp=1998-06-24-08.42.11.527490;category=VALIDATE; audit event=CHECK_GROUP_MEMBERSHIP;event correlator=2; event status=-1092;database=FOO;userid=boss;authid=BOSS; execution id=newton;application id=*LOCAL.newton.980624124210; application name=testapp;auth type=SERVER; timestamp=1998-06-24-08.42.11.561187;category=VALIDATE; audit event=CHECK_GROUP_MEMBERSHIP;event correlator=2; event status=-1092;database=FOO;userid=boss;authid=BOSS; execution id=newton;application id=*LOCAL.newton.980624124210; application name=testapp;auth type=SERVER; timestamp=1998-06-24-08.42.11.594620;category=VALIDATE; audit event=CHECK_GROUP_MEMBERSHIP;event correlator=2; event status=-1092;database=FOO;userid=boss;authid=BOSS; execution id=newton;application id=*LOCAL.newton.980624124210; application name=testapp;auth type=SERVER;
(なし)
すべての考えられる監査イベント (CONTEXT を除く) の監査を要求する監査構成から生成される監査レコードは、 監査試行が失敗するとき以外だけではかなり少なくなります。 監査構成を変更することによって、 生成される監査レコードのタイプおよび性質を制御できます。
この監査機能を使用することにより、 監査することを望むものがオブジェクト上で特権を首尾よく付与されたとき、 監査レコードを作成することを可能にします。 この場合において、次のような監査機能を構成することができます。
db2audit configure scope checking status success
この構成を指定した監査機能を開始して、 それから testapp アプリケーションを実行した後で、 次のレコードが監査ログに生成され配置されます。 (この場合、testapp がそれ以前に実行されていないことを想定しています。) このログから監査レコードを抽出することによって、 下記のレコードがアプリケーションで実行される 2 つの処置のために生成されるのを確認するでしょう。
timestamp=1998-06-24-08.42.11.622984;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=2;event status=0; database=FOO;userid=boss;authid=BOSS; timestamp=1998-06-24-08.42.41.450975;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=2;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;object schema=NULLID; object name=SQLC28A1;object type=PACKAGE; access approval reason=OBJECT;access attempted=EXECUTE; timestamp=1998-06-24-08.42.41.539692;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=3;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;package section=0; object schema=BOSS;object name=AUDIT;object type=TABLE; access approval reason=DATABASE;access attempted=CREATE; timestamp=1998-06-24-08.42.41.570876;category=CHECKING; audit event=CHECKING_OBJECT;event correlator=3;event status=0; database=FOO;userid=boss;authid=BOSS; application id=*LOCAL.newton.980624124210;application name=testapp; package schema=NULLID;package name=SQLC28A1;package section=0; object name=BOSS;object type=SCHEMA;access approval reason=DATABASE; access attempted=CREATE;
(なし)