1 未公開的Oracle資料庫祕密筆記——引數說明——AUDIT SYSLOG LEVEL
1未公開的Oracle資料庫祕密筆記——引數說明——AUDIT_SYSLOG_LEVEL
Oracle資料庫管理系統有無數可以轉向的旋鈕和開合的開關。應該沒有一個DBA能夠記全的,就算核心開發人員,應該也是難以做到的吧?
每個版本的引數可以參看:Reference.pdf檔案
AUDIT_SYSLOG_LEVEL與資料庫安全相關。
設定語法如下:
AUDIT_SYSLOG_LEVEL = 'facility_clause.priority_clause'
facility_clause::=
{USER | LOCAL[0 | 1 | 2 | 3 | 4 | 5 | 6 | 7] | SYSLOG |
DAEMON | KERN | MAIL | AUTH | LPR | NEWS | UUCP | CRON }
priority_clause::=
{NOTICE | INFO | DEBUG | WARNING | ERR | CRIT | ALERT |
EMERG }
可以設定成:
AUDIT_SYSLOG_LEVEL ='KERN.EMERG';
AUDIT_SYSLOG_LEVEL = 'LOCAL1.WARNING';
預設是不進行設定的。
(12C中設定已經不再有作用了,遷移到統一審計)
該引數允許SYS和標準OS審計寫到系統審計日誌中的記錄。
如果使用該引數,最好在syslog.conf中指定一個對應的檔案。
通常會指定到串列埠,這樣不會太麻煩;如果設定最好設定syslog訊息的最大長度。
如果AUDIT_SYSLOG_LEVEL被設定,AUDIT_SYS_OPERATIONS=TRUE,那麼SYS會審計寫到系統審計日誌的記錄。
如果AUDIT_SYSLOG_LEVEL被設定,AUDIT_TRAIL=OS,那麼標準審計記錄會被寫到系統審計日誌。
在CDB中,這個引數只在CDB範圍有效。在PDB中不能進行設定。
1. Syslog裝置
Oracle可以使用syslog裝置寫入審計跟蹤。包括一個名為syslogd的守護程序,接受來自使用syslog C語言庫函式的應用程式的日誌資訊。
日誌資訊一般位於/var/log中。
2. 審計
使用SYSDBA後者SYSOPER特權對ORACLE例項進行CONNECT,STARTUP操作時候,都將會被無條件地審計,記錄到$ORACLE_HOME/rdbms/audit以.aud作為副檔名的檔案或者明確指定引數AUDIT_FILE_DEST目錄中。
(9i 版本開始設定AUDIT_SYS_OPERATIONS來審計除了使用SYSDBA或者SYSOPER特權的一些操作,預設為TRUE)
當AUDIT_SYSLOG_LEVEL和AUDIT_SYS_OPERATIONS結合時,執行任務的SQL和PL/SQL都將會使用syslog裝置對其進行審計。
檢視/var/log/message檔案,例如:#tail –f/var/log/message
然後連線資料 #sqlplus/ as sysdba
可以發現在作業系統中會有AUDIT記錄。
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '159' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0' DBID:[10] '1419140026'
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '158' ACTION :[6] 'COMMIT' DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0' DBID:[10] '1419140026'
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '158' ACTION :[6] 'COMMIT' DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0' DBID:[10] '1419140026'
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '192' ACTION :[39] 'BEGIN DBMS_OUTPUT.ENABLE(1000000);END;' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle'CLIENT TERMINAL:[5] 'pts/1' STATUS:[1] '0' DBID:[10] '1419140026'
3. 審計非特權使用者
可以設定AUDIT_TRAIL=OS來審計有關非特權使用者的記錄到系統日誌中去。
AUDIT_TRAIL=DB(預設)在資料庫中保留非特權使用者的審計跟蹤。審計跟蹤會寫入資料表SYS.AUD$。