Oracle 稽核 可記錄使用者資料庫操作,結果寫入 OS 檔案 (預設 $ORACLE_BASE/admin/$SID/adump/) 或資料庫表 SYS.AUD$ (視圖 DBA_AUDIT_TRAIL)。預設關閉,但 SYSDBA 連線、啟動/關閉資料庫 強制記錄。
| 參數 | 選項與說明 |
|---|---|
AUDIT_SYS_OPERATIONS | FALSE (預設) / TRUE:啟用後所有 SYS/SYSDBA/SYSOPER 操作記錄至 OS (Windows 事件檢視器、Linux/Unix AUDIT_FILE_DEST),不寫 AUD$。 |
AUDIT_TRAIL |
NONE (預設) 關閉DB:寫 AUD$,僅連線資訊DB, EXTENDED:含完整 SQL_TEXT/BIND 變數OS:寫 OS 檔案 (AUDIT_FILE_DEST)XML:10g 新增,XML 格式 OS 檔案
|
AUDIT TABLE 稽核所有 CREATE/DROP/TRUNCATE TABLE;AUDIT SESSION BY user 稽核特定使用者連線。AUDIT SELECT ANY TABLE,當使用者行使該權限 (如跨 Schema 查詢) 觸發稽核。擁有者存取自己物件不觸發。AUDIT SELECT, INSERT ON scott.emp BY hr 針對特定物件、特定使用者、特定操作。支援 ON DEFAULT 自動稽核後續新建物件 (但無法限定 Schema)。BY ACCESS:每次操作產生一筆記錄。BY SESSION (預設):同一 Session 同類操作僅記錄一次。WHENEVER SUCCESSFUL / WHENEVER NOT SUCCESSFUL:依成敗過濾。9i FGA 僅支援 SELECT。10g FGA 擴展支援 DML (INSERT/UPDATE/DELETE),可捕獲 行級變更前後值、SCN、完整 SQL 與 BIND 變數,無需自寫 Trigger 或用 LogMiner。範例:
-- Joe 更新 SCOTT.EMP 薪資
UPDATE SCOTT.EMP SET SALARY = 12000 WHERE EMPNO = 123456;
-- 10g FGA 可記錄:誰、何時、什麼表、什麼欄、舊值、新值、完整 SQL
-- 9i 僅能知「誰更新了 EMP」,無法知「哪筆員工、薪資從多少改多少」
ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE;
ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE;
STARTUP FORCE;
AUDIT ALL ON t_test;
CONN u_test
SELECT * FROM t_test;
INSERT INTO t_test(c2,c5) VALUES ('test1','2');
DELETE FROM t_test;
CONN / AS SYSDBA
SELECT OS_USERNAME, USERNAME, USERHOST, TERMINAL, TIMESTAMP,
OWNER, OBJ_NAME, ACTION_NAME, SQL_TEXT
FROM DBA_AUDIT_TRAIL;
AUDIT SESSION; -- 所有連線
AUDIT SESSION BY jeff, lori; -- 指定用戶
AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
AUDIT SELECT, INSERT, DELETE ON jward.dept BY ACCESS WHENEVER SUCCESSFUL;
AUDIT SELECT TABLE BY appserv ON BEHALF OF jackson; -- 多層環境代理稽核
NOAUDIT SESSION;
NOAUDIT DELETE ANY TABLE;
NOAUDIT ALL; -- 取消所有陳述式稽核
NOAUDIT ALL PRIVILEGES; -- 取消所有權限稽核
NOAUDIT ALL ON DEFAULT; -- 取消所有物件預設稽核
DELETE FROM SYS.AUD$;
DELETE FROM SYS.AUD$ WHERE OBJ$NAME = 'EMP';
ALTER TABLE SYS.AUD$ MOVE TABLESPACE USERS;
ALTER TABLE SYS.AUD$ MOVE LOB (SQLBIND) STORE AS (TABLESPACE USERS);
ALTER TABLE SYS.AUD$ MOVE LOB (SQLTEXT) STORE AS (TABLESPACE USERS);
ALTER INDEX SYS.I_AUD1 REBUILD TABLESPACE USERS;
DBA_STMT_AUDIT_OPTS、DBA_PRIV_AUDIT_OPTS、DBA_OBJ_AUDIT_OPTS:目前啟用的稽核選項。DBA_AUDIT_TRAIL、DBA_AUDIT_SESSION、DBA_AUDIT_OBJECT、DBA_AUDIT_STATEMENT:稽核記錄查詢。ALL_DEF_AUDIT_OPTS:ON DEFAULT 設定。DBA_COMMON_AUDIT_TRAIL:12c+ 統一標準稽核 + FGA 記錄。