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

Oracle 9i 審計功能深度解析:啟動配置、審計類型、AUD$ 表結構與實戰案例

     編輯:Oracle 資料庫相關知識

審計核心價值

  • 審查可疑活動(如反復登錄失敗、非常態時間訪問)
  • 監控並收集指定數據庫操作數據,滿足合規與取證需求

三大審計類型

類型對象典型場景
語句審計特定 SQL 語句(SELECT/INSERT/DELETE 等)審計所有 DROP TABLE 操作
權限審計系統權限使用(如 GRANT DBA)監控管理員權限濫用
對象審計特定表/視圖/序列的操作審計薪資表的 UPDATE/DELETE

AUD$ 表關鍵字段解讀

審計記錄存儲在 SYS.AUD$ 表,核心欄位:

  • SESSIONID、ENTRYID、STATEMENT、TIMESTAMP#:會話與語句標識
  • USERID、USERHOST、TERMINAL:操作者身份與來源
  • ACTION#、RETURNCODE:操作類型與執行結果(0=成功)
  • OBJ$CREATOR、OBJ$NAME:受影響對象
  • PRIV$USED、AUTH$PRIVILEGES:使用的系統/對象權限
  • SES$ACTIONS:會話操作摘要字符串
  • LOGOFF$LREAD/PREAD/LWRITE/DEAD/TIME:會話統計
  • CLIENTID、SESSIONCPU:客戶端標識與 CPU 消耗

啟動審計

修改初始化參數 AUDIT_TRAIL = DB(或 OS/DB_EXTENDED),需重啟實例生效。EM 界面「所有參數」頁籤設置見圖。

實戰:會話審計

  1. SYS 用戶執行:AUDIT SESSION;(腳本 auditsession.sql)
  2. SCOTT 用戶另開會話登錄
  3. 查詢 AUD$ 表,關鍵輸出:
SESSIONID: 518
ENTRYID: 1
STATEMENT: 1
TIMESTAMP#: 13-二月-2003 11:28:24 AM
USERID: SCOTT
TERMINAL: MYNETSERVER
ACTION#: 100 (LOGON)
RETURNCODE: 0
COMMENT$TEXT: Authenticated by: DATABASE; Client address: (PROTOCOL=tcp)(HOST=128.0.0.1)(PORT=1088)
PRIV$USED: 5 (CREATE SESSION)

截圖見圖。

進階建議

  • 定期歸檔/清理 AUD$ 避免 SYSTEM 表空間撐爆。
  • 結合 Fine-Grained Auditing (FGA) 實現列級/條件審計。
  • 審計策略納入變更管理流程,所有 DDL 操作強制審計。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved