====== Auditing einschalten und Audit Tabelle (10g) umziehen ======
Ab 11g kann das viel einfacher über DB Packages getan werden.
====== 1. Anpassen init.ora ======
init.ora
audit_sys_operations=true
audit_trail=DB
DB neustarten
====== 2. Umziehen der Aud$ Tabelle in den Tools Tablespace ======
Grund:
- Damit der System Tablespace nicht voll läuft
- Ein trigger auf der aud$ wird dann möglich, um manipulationen zu überwachen
create table system.aud$ tablespace TOOLS as select * from aud$;
create index system.i_aud1 on system.aud$(sessionid, ses$tid) tablespace TOOLS ;
rename aud$ to aud$_temp;
create view aud$ as select * from system.aud$;
Achtung!\\
Einige Packages wie DBMS_STANDARD werden damit kurz ungültig und lassen sich in produktiven Systemen NICHT mehr so einfach übersetzen!\\
Bei Anlegen sollten daher keine produktiven Prozesse auf der DB arbeiten (auch an Jobs etc. denken)!
====== 3. Tabellen überwachen ======
Folgende Tabelle schlägt [[http://www.red-database.com|Alexander Kornbrust von Red Database Securtiy]] vor zu überwachen.\\
AUDIT CREATE SESSION WHENEVER NOT SUCCESSFUL;
AUDIT CREATE USER;
AUDIT ALTER USER;
AUDIT DROP USER;
AUDIT ALTER SYSTEM;
AUDIT SELECT ON DBA_USERS;
AUDIT DELETE ON SYS.AUD$;
AUDIT UPDATE ON SYS.AUD$;
====== 4. Tabelle Aud$ paranoid überwachen ======
Falls wir ganz paranoid sind, können wir die Log Info auch über einen Trigger mit dem Aufruf einer Seite eines Webserver tracen lassen.\\
create or replace trigger audit_trigger
after update on system.aud$ for each row
when (new.action# = 101 or new.action# = 102)
declare
v_rc varchar2(4096);
begin
begin
v_rc:=utl_http.request('http://10.0.0.11/user='||:new.userid);
exception
when utl_http.REQUEST_FAILED
then null;
end;
end;