Oracle 審計(jì)

查看審計(jì)功能是否開(kāi)啟:

SQL> show parameter audit

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest              string  /data/oracle/admin/orcl/adump
audit_sys_operations         boolean     FALSE
audit_syslog_level           string
audit_trail              string  OS

和審計(jì)相關(guān)的兩個(gè)參數(shù):

audit_sys_operations

默認(rèn)為 false,當(dāng)設(shè)置為true時(shí),所有sys用戶(包括以sysdba, sysoper身份登錄的用戶)的操作都會(huì)被記錄,audit trail 不會(huì)寫(xiě)在aud$ 表中,這個(gè)很好理解,如果數(shù)據(jù)庫(kù)還未啟動(dòng)aud$不可用,那么像conn /as sysdba這樣的連接信息,只能記錄在其它地方。如果是 linux/unix 平臺(tái)會(huì)記錄在 audit_file_dest 參數(shù)指定的文件中。

SQL> show parameter audit_sys_operation

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
audit_sys_operations             boolean     FALSE

audit_trail

NONE:是默認(rèn)值,不做審計(jì);
DB:將audit trail 記錄在數(shù)據(jù)庫(kù)的審計(jì)相關(guān)表中,如 aud$,審計(jì)的結(jié)果只有連接信息;
DB,Extended:這樣審計(jì)結(jié)果里面除了連接信息還包含了當(dāng)時(shí)執(zhí)行的具體語(yǔ)句;
OS:將audit trail 記錄在操作系統(tǒng)文件中,文件名由 audit_file_dest 參數(shù)指定;
XML:10g里新增的。

SQL> show parameter audit_trail

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
audit_trail              string  OS

修改參數(shù),打開(kāi)審計(jì) sys 用戶的行為,審計(jì)記錄記錄到操作系統(tǒng)文件中:

SQL> alter system set audit_sys_operations=TRUE scope=spfile;

SQL> alter system set audit_trail=OS scope=spfile;

SQL> shutdown immediate

SQL> startup

注:這兩個(gè)參數(shù)是 static 參數(shù),需要重新啟動(dòng)數(shù)據(jù)庫(kù)才能生效。

audit_syslog_level

這個(gè)參數(shù)和 syslog 配合使用,可以轉(zhuǎn)發(fā)審計(jì)記錄到本地其他目錄或者遠(yuǎn)程審計(jì)服務(wù)器。

CentOS 中,使用 rsyslog 代替 syslogr 意思是 Rocket-fast,突出一個(gè)快。

配置 audit_syslog_levellocal0.info

SQL> alter system set audit_syslog_level='local0.info' scope=spfile;
SQL> shutdown immediate;
SQL> startup;
SQL> show parameter audit;

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest              string  /data/oracle/admin/orcl/adump
audit_sys_operations         boolean     FALSE
audit_syslog_level           string    LOCAL0.INFO
audit_trail              string  OS

local0.info是啥意思,這個(gè)是 rsyslog 日志配置的兩個(gè)維度,local0facility 這個(gè)維度,有 local0-local7 可選;infoseverity 這個(gè)維度,這個(gè)比較好理解,就是日志等級(jí),后續(xù)過(guò)濾日志時(shí)可以使用這些維度去過(guò)濾。

配置 /etc/rsyslog.conf

# 審計(jì)記錄保存到本地文件,我們之前設(shè)置的 audit_syslog_level 為 `local0.info`, 那就過(guò)濾到特定文件中
local0.info /var/log/oracle_audit.log
# 或轉(zhuǎn)發(fā)到遠(yuǎn)程審計(jì)服務(wù)器。@是使用 `UDP` 協(xié)議,@@是使用 `TCP` 協(xié)議
local0.info @140.0.1.108

# 找到這一行加上 `local0.none`,意思是不要把 oracle 日志寫(xiě)入 message 文件中
*.info;mail.none;cron.none;local0.none /var/log/message

重啟 rsyslog

$ systemctl restart rsyslog

# sqlplus / as sysdba 時(shí)就會(huì)有數(shù)據(jù)了
$ tail -f /var/log/oracle_audit.log
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容