【AUDIT】實現將SYS使用者的操作資訊記錄到作業系統日誌中

secooler發表於2011-04-27
  本文以Linux作業系統為例。實現將SYS使用者的動作記錄到作業系統系統日誌中,對應的作業系統日誌檔案是“/var/log/messages”。

1.調整資料庫引數
實現這個功能最關鍵的引數便是“audit_syslog_level”和“audit_sys_operations”。
即便audit_trail引數值為“NONE”功能也是能實現的。
1)調整系統引數
sys@ora10g> alter system set audit_syslog_level='USER.NOTICE' scope=spfile;

System altered.

sys@ora10g> alter system set audit_sys_operations=TRUE scope=spfile;

System altered.

sys@ora10g> alter system set audit_trail=none scope=spfile;

System altered.

2)重啟資料庫使調整後的引數生效
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ora10g> startup;
ORACLE instance started.

Total System Global Area  268435456 bytes
Fixed Size                  1218868 bytes
Variable Size              71304908 bytes
Database Buffers          188743680 bytes
Redo Buffers                7168000 bytes
Database mounted.
Database opened.

3)驗證引數調整結果
sys@ora10g> show parameter audit

NAME                   TYPE                 VALUE
---------------------- -------------------- ----------------
audit_file_dest        string               /home/oracle
audit_sys_operations   boolean              TRUE
audit_syslog_level     string               USER
audit_trail            string               NONE

注意此時audit_trail引數值是“NONE”。

2.驗證審計效果
1)使用root使用者實時監控作業系統日誌
[root@secdb ~]# tail -100f /var/log/messages

2)在SYS使用者下提交SQL語句
sys@ora10g> select 'secooler' secooler from dual;

SECOOLER
--------
secooler

3)系統日誌中記錄瞭如下審計資訊
Apr 27 22:30:23 secdb Oracle Audit[7761]: ACTION : 'select 'secooler' secooler from dual' DATABASE USER: '/' PRIVILEGE : SYSDBA CLIENT USER: oracle CLIENT TERMINAL: pts/3 STATUS: 0
Apr 27 22:30:23 secdb Oracle Audit[7761]: ACTION : 'BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;' DATABASE USER: '/' PRIVILEGE : SYSDBA CLIENT USER: oracle CLIENT TERMINAL: pts/3 STATUS: 0

可見,在SYS使用者下執行的SQL語句已經完整的寫入到了作業系統日誌中。
其中“[7761]”表示作業系統程式程式ID。
[root@secdb ~]# ps -ef | grep 7761 | grep -v grep
oracle    7761  7761  0 22:39 ?        00:00:00 oracleora10g (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

3.10g官方文件中引數描述
AUDIT_SYS_OPERATIONS描述連結:


AUDIT_SYSLOG_LEVEL描述連結:


4.小結
  這種將SYS使用者下的操作寫入到作業系統日誌的行為需要重點監控,防止出現無人看管的增長檔案。針對自己的實際需求選擇使用。

Good luck.

secooler
11.04.27

-- The End --

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

相關文章