自Oracle 8i起,資料庫引入系統級觸發器,包含資料庫啟動觸發器、DDL觸發器、以及用戶登入/登出觸發器。本文詳細說明如何設計審計表與觸發器,有效追蹤終端用戶的登入登出活動與會話資訊。
為避免登入/登出資訊分散在兩張表導致關聯困難,採用單一表記錄完整會話生命週期:
此設計簡化查詢、利於報表產生,並能直接分析用戶使用模式。
利用SYS_CONTEXT('USERENV', 'SESSIONID')取得會話ID,SYS_CONTEXT('USERENV', 'HOST')取得主機名,SYSTIMESTAMP記錄精確登入時間。並將日期與時間分欄位儲存,提升報表可讀性。
V$SESSION視圖的ACTION、MODULE、PROGRAM屬性更新最後活動資訊系統級觸發器雖功能持續增強,但善用登入/登出觸發器已能建立輕量可靠的審計機制,為DBA提供豐富的用戶行為洞察,支援效能調校與安全稽核。