Oracle的Audit功能是Oracle數據庫提供的一種審計功能。這個功能可以實現對數據庫的操作層面進行記錄和監管,從而保障數據庫的安全性和完整性。
舉個例子,某個數據庫管理員在某個時間點刪除了某個表,導致某個程序報錯了。如果此時數據庫管理員無法確定是哪個人或者哪個程序刪除了表,那么就沒有辦法查找到這個問題的根本原因。如果開啟了Oracle的Audit功能,當管理員刪除數據表時就會被記錄下來,這樣就有跟蹤和解決問題的依據。
Oracle的Audit功能支持對多個對象進行記錄,包括:
? 用戶 ? 角色 ? 用戶組 ? 表、索引 ? 視圖、存儲過程 ? 用戶定義類型、序列等
具體而言,可以對數據庫的DCLS操作(包括CREATE DATABASE、DROP DATABASE、ALTER DATABASE以及CREATE TABLESPACE、DROP TABLESPACE等等)進行審計。
這里以AUDIT CREATE TABLE BY access;舉例。這條命令可以將對于ACCESS用戶自建表對象的創建進行審計。當AUDIT功能打開時,ACCESS用戶創建一個表,這個對象的創建記錄就會被寫入到 AUD$ 表中。等到另一個管理員需要查看這個審計信息時,可以利用SELECT語句進行查詢,如下:
SELECT os_username,username,terminal,To_char(timestamp,'HH:MI:SS MM/DD/YYYY'),obj_name,action_name FROM sys.aud$ WHERE obj$creator='ACCESS' AND action='112' ORDER BY timestamp;
此時就可以查詢到所有的記錄,包括用戶名、操作行為、時間戳、對象名等信息。
除了將審計信息插入到AUD$表中外,還可以使用 Oracle自帶的DBMS_FGA包進行審計。這個包的優勢在于支持對SQL語句進行審計,是一個更為強大的審計工具。
綜上所述,Oracle的Audit功能可以為數據庫提供安全性和完整性保障。管理員可以通過這個功能來跟蹤和處理問題,切實提高數據庫的可靠性和安全性。