AUDIT介紹

何謂AUDIT
  • 它被稱為稽核,所謂的稽核是可以監控使用者對資料庫的操作,可分為三種稽核方式,分別為陳述稽核,權限稽核,物件稽核,在使用稽核前,要先設定資料庫的稽核參數
何謂稽核參數
  • 稽核參數又稱為AUDIT_TRAIL,它有多種值可以使用,以下是介紹常用的參數值
DB:稽核資料記錄在DBA_AUDIT_TRAIL表格裡
OS:稽核資料記錄在OS裡,所在的路徑為AUDIT_FILE_DEST參數所指定的目錄內
XML:稽核資料記錄在V$XML_AUDIT_TRAIL表格裡,也會存放在OS裡,檔案格式為xml檔,所在的路徑為AUDIT_FILE_DEST參數所指定的目錄內
NONE: 禁止使用資料庫稽核
格式
AUDIT audit_option
     [BY {SESSION | ACCESS}]
     [WHENEVER SUCCESSFUL | WHENEVER NOT SUCCESSFUL];
audit_option : 稽核目標
BY SESSION : 在同一連線中,多次執行稽核目標操作時,所有的操作輸出稽核資訊,此為預設值
BY ACCESS : 在同一連線中,多次執行稽核目標操作時,只對第一次操作輸出稽核資訊
WHENEVER SUCCESSFUL : 稽核正常執行的SQL與操作
WHENEVER NOT SUCCESSFUL : 稽核失敗或發生錯誤的SQL和操作
audit_option格式
  • 陳述稽核格式
{statement_option [,statement_option...] | ALL}
[BY {proxy | user}]
statement_option : 陳述選項,例如ALTER SYSTEM,ALTER INDEX等SQL語句
proxy :  代理伺服器名稱
user : 使用者名稱
ALL 所有SQL語句稽核 
  • 權限稽核格式
{system_privilege [,system_privilege...] | ALL PRIVILEGES
[BY {proxy | user}]
 system_privilege : 系統權限,例如CREATE TABLE系統權限或CREATE INDEX系統權限等
 proxy :  代理伺服器名稱
 user : 使用者名稱
 ALL PRIVILEGES : 所有權限稽核
  • 物件稽核格式
{object_option [,object_option...] | ALL}
{ON [schema.]object_name | ON DIRECTORY directory_name | ON DEFAULT}
 object_option : 成為稽核目標操作,例如DELETE,READ,INSERT,UPDATE等操作
 ALL : 會稽核所有可在object_option指定操作
 ON : 可以指定目標物件為表格,檢視,序列,預儲程序,預儲函數,預儲程式包裝,實體化檢視,函數庫
DEFAULT : 建立預設的物件選項,指定AUDIT執行後,所建立的物件選項會當成預設的稽核選項應用 
 schema : 結構名稱
 object_name : 物件名稱
 directory_name : 目錄名稱
使用方式
  • SQL語法示範
說明 : 稽核hr使用者擁有表格查詢操作
audit select table by hr;
說明 : 針對使用者hr使用create any table系統權限作稽核 
audit create any table by hr;
說明 : 對hr使用者擁有的emp表格的查詢進行稽核 
audit select on hr.emp;