====== 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;