【AUDIT】審計並記錄使用者連線資料庫資訊

secooler發表於2010-12-16
為防止惡意使用者對系統進行攻擊,我們可以監控系統的連線情況。與此同時結合定期檢查和分析,便可以迅速的發現那些異常和非法的資料庫連線。

實現對Oracle系統登入的審計的方法不是唯一的,這裡給出使用觸發器記錄使用者登入資訊。希望能起到拋磚引玉的目的。

1.建立記錄審計資訊的表
conn sec/sec
create table audit_user_connect
(
   user_id           varchar2 (32),
   session_id        number (8),
   host              varchar2 (32),
   connection_ip     varchar2 (32),
   logon_day         date,
   logon_time        varchar2 (10)
);

2.建立審計連線資訊的觸發器
create or replace trigger user_connect_audit_trigger
   after logon
   on database
declare
   v_connection_ip varchar2 (20);
   v_host  varchar2 (20);
begin
   select sys_context ('userenv', 'ip_address') into v_connection_ip from dual;
   select sys_context ('userenv', 'host') into v_host from dual;
   insert into audit_user_connect
     values   (user,
               sys_context ('userenv', 'sessionid'),
               v_host,
               v_connection_ip,
               sysdate,
               to_char (sysdate, 'hh24:mi:ss'));
   commit;
end;
/

3.測試效果
1)客戶端測試連線資料庫
SQL> conn secooler/secooler@172.17.193.211ora10g
已連線。
SQL> conn sec/sec@172.17.193.211ora10g
已連線。

2)檢視審計資訊
sec@ora10g> select * from audit_user_connect;

USER_ID    SESSION_ID HOST                 CONNECTION_IP   LOGON_DAY           LOGON_TIME
---------- ---------- -------------------- --------------- ------------------- ----------
SECOOLER      2510618 BJSSECO\HOUSW-LT     10.142.8.199    2010-12-16 21:10:48 21:10:48
SEC           2510619 BJSSECO\HOUSW-LT     10.142.8.199    2010-12-16 21:11:06 21:11:06


4.注意事項
因為是使用觸發器實現的審計,因此如果trigger本身出現問題的話,會導致使用者無法訪問。因此在使用該方法進行審計時,一定要確保trigger的有效性和可用性。
具體的報錯資訊如下:
sys@ora10g> conn sec/sec
ERROR:
ORA-04098: trigger 'SEC.USER_DISCONNECT_AUDIT_TRIGGER' is invalid and failed re-validation


ERROR:
ORA-24315: illegal attribute type


Warning: You are no longer connected to ORACLE.

5.小結
本文給出的是透過觸發器實現使用者登入審計的需求。可以在此基礎上進行豐富和定製來滿足具體的審計需求。
歡迎大家提出自己的寶貴意見。

Good luck.

secooler
10.12.16

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-682053/,如需轉載,請註明出處,否則將追究法律責任。

相關文章