首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 8i/9i 審計 SYSDBA 登入:利用作業系統審計檔追蹤特權操作

     編輯:Oracle 資料庫相關知識

為什麼必須監控 SYSDBA 登入?

Oracle 8i 起逐步淘汰 INTERNAL 用戶,改以授予 SYSDBA/SYSOPER 角色的用戶執行啟動/關閉資料庫等特權操作。9i 徹底移除 SVRMGRL 與 INTERNAL。因 SYSDBA 權限極大,必須建立完整審計機制追蹤誰、何時、從何處以特權登入。

Unix/Linux 平台自動審計機制

每當用戶以 SYSDBA 權限連線,Oracle 自動在 $ORACLE_HOME/rdbms/audit 目錄建立 ora_.aud 檔案,**完全不需啟用資料庫審計功能**(AUDIT_TRAIL 參數無關)。檔案記錄:

  • 登入時間戳記
  • 執行操作(如 'CONNECT INTERNAL')
  • 作業系統特權(OSPRIV: DBA)
  • 客戶端用戶名稱(CLIENT USER)
  • 客戶端終端機名稱(CLIENT TERMINAL)
  • 實例名稱、伺服器主機名、Oracle 進程號、Unix PID 等

實際審計檔範例解析

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 下審計記錄寫入 Windows 事件檢視器(Event Viewer)的 Application Log,而非檔案系統。需啟用 AUDIT_TRAIL = OS 或 DB 並設定 AUDIT_SYS_OPERATIONS = TRUE 才會記錄 SYS 操作。

審計檔管理最佳實務

  • 定期歸檔/清理 $ORACLE_HOME/rdbms/audit 避免佔滿磁碟
  • 建立 Shell 腳本解析 .aud 檔,匯入資料庫表供查詢報表
  • 整合 SIEM 系統集中監控異常特權登入
  • 搭配 AUDIT SYSDBA、AUDIT SYSOPER 指令強化資料庫層面審計

作業系統層面的強制審計檔是繞不開的「鐵證」,即使資料庫審計關閉也照常記錄,是防範內部特權濫用、滿足合規審計要求的關鍵防線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved