Für diese Darstellung zur Steuerung der Aktivitäten der Prüffunktion wird das folgende vereinfachte Szenario verwendet: Ein Benutzer, newton, führt die Anwendung testapp aus, die eine Verbindung aufbaut und eine Tabelle erstellt. Diese Anwendung wird in allen nachfolgend aufgeführten Beispielen verwendet.
Zunächst ein extremes Beispiel: Wenn Sie sich entschlossen haben, alle erfolgreichen und fehlgeschlagenen Prüfereignisse zu prüfen, müßten Sie die Prüffunktion wie folgt konfigurieren:
db2audit configure scope all status both
Anmerkung: | Dadurch werden Prüfsätze für alle möglichen prüfbaren Ereignisse erstellt. Dies führt dazu, daß zahlreiche Prüfsätze in das Prüfprotokoll geschrieben werden, was wiederum die Verarbeitungsleistung Ihres Datenbankmanagers beeinträchtigt. Dieses extreme Beispiel ist hier nur zu Demonstrationszwecken angeführt; es empfiehlt sich nicht, die Prüffunktion mit dem oben angegebenen Befehl zu konfigurieren. |
Nachdem die Prüffunktion mit dieser Konfiguration (mit Hilfe von "db2audit start") gestartet und anschließend die Anwendung testapp ausgeführt wurde, werden die folgenden Datensätze generiert und in das Prüfprotokoll geschrieben. Durch Extrahieren der Prüfsätze aus dem Protokoll werden Sie feststellen, daß für die beiden von der Anwendung ausgeführten Aktionen die folgenden Datensätze generiert wurden:
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;
Wie Sie sehen, wird bei dieser Prüfkonfiguration, die dafür sorgt, daß alle möglichen Prüfereignisse und -arten geprüft werden, eine beträchtliche Anzahl von Prüfsätzen generiert.
In den meisten Fällen werden Sie die Prüffunktion jedoch so konfigurieren, daß nur eine begrenzte bzw. zielgerichtete Auswahl von Ereignissen geprüft wird. Beispielsweise könnten Sie nur diejenigen Ereignisse prüfen, die fehlgeschlagen sind. Dazu könnte die Prüffunktion wie folgt konfiguriert werden:
db2audit configure scope audit,checking,objmaint,secmaint,sysadmin, validate status failure
Anmerkung: | Dies ist die Grundkonfiguration der Prüffunktion, die beim Zurücksetzen der Prüfkonfiguration aktiviert wird. |
Nachdem die Prüffunktion mit dieser Konfiguration gestartet und anschließend die Anwendung testapp ausgeführt wurde, werden die folgenden Datensätze generiert und in das Prüfprotokoll geschrieben. (Hierbei wird vorausgesetzt, daß testapp vorher nicht ausgeführt wurde.) Durch Extrahieren der Prüfsätze aus dem Protokoll werden Sie feststellen, daß für die beiden von der Anwendung ausgeführten Aktionen die folgenden Datensätze generiert wurden:
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;
(keine)
Diese Prüfkonfiguration, die die Prüfung aller möglichen Prüfereignisse (ausgenommen CONTEXT) anfordert, sofern das Prüfereignis fehlgeschlagen ist, generiert eine geringere Anzahl von Prüfsätzen. Durch Ändern der Prüfkonfiguration können Sie Art und Zusammensetzung der generierten Prüfsätze steuern.
Mit der Prüffunktion können Sie auch Prüfsätze erstellen, wenn den zu prüfenden Ereignissen erfolgreich Zugriffsrechte für ein Objekt erteilt wurden. In diesem Fall könnten Sie die Prüffunktion wie folgt konfigurieren:
db2audit configure scope checking status success
Nachdem die Prüffunktion mit dieser Konfiguration gestartet und anschließend die Anwendung testapp ausgeführt wurde, werden die folgenden Datensätze generiert und in das Prüfprotokoll geschrieben. (Hierbei wird vorausgesetzt, daß testapp vorher nicht ausgeführt wurde.) Durch Extrahieren der Prüfsätze aus dem Protokoll werden Sie feststellen, daß für die beiden von der Anwendung ausgeführten Aktionen die folgenden Datensätze generiert wurden:
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;
(keine)