Oracle 8i 起逐步淘汰 INTERNAL 用戶,改以授予 SYSDBA/SYSOPER 角色的用戶執行啟動/關閉資料庫等特權操作。9i 徹底移除 SVRMGRL 與 INTERNAL。因 SYSDBA 權限極大,必須建立完整審計機制追蹤誰、何時、從何處以特權登入。
每當用戶以 SYSDBA 權限連線,Oracle 自動在 $ORACLE_HOME/rdbms/audit 目錄建立 ora_ 檔案,**完全不需啟用資料庫審計功能**(AUDIT_TRAIL 參數無關)。檔案記錄:
'CONNECT INTERNAL')OSPRIV: DBA)CLIENT USER)CLIENT TERMINAL)Audit file /ora1/oracle/app/product/8.1.6/rdbms/audit/ora_589980.aud Oracle8i Enterprise Edition Release 8.1.6.3.0 - Production ... Instance name: nbgs1 Unix process pid: 589980, image: oracle@nbtax1 (TNS V1-V3) Fri Sep 21 10:26:57 2001 ACTION : 'CONNECT INTERNAL' OSPRIV : DBA CLIENT USER: Administrator CLIENT TERMINAL: XIAOFEISHI
此例顯示:2001-09-21 10:26:57,Windows 用戶 Administrator 從終端 XIAOFEISHI 以 SYSDBA 連線實例 nbgs1。中文註解為作者添加,系統原始輸出為英文。
Windows 下審計記錄寫入 Windows 事件檢視器(Event Viewer)的 Application Log,而非檔案系統。需啟用 AUDIT_TRAIL = OS 或 DB 並設定 AUDIT_SYS_OPERATIONS = TRUE 才會記錄 SYS 操作。
$ORACLE_HOME/rdbms/audit 避免佔滿磁碟AUDIT SYSDBA、AUDIT SYSOPER 指令強化資料庫層面審計作業系統層面的強制審計檔是繞不開的「鐵證」,即使資料庫審計關閉也照常記錄,是防範內部特權濫用、滿足合規審計要求的關鍵防線。