oracle 10g之前,可以審計對表的操作,但不能記錄操作時的各個列的值。在10g中,已經可以審核并監控到具體的sql語句及內容了。
要求
10g以后的版本。
alter system set audit_trail=db_extended scope=spfile;[@more@]
示例;
SQL> show user
User is "TEST"
SQL> desc a;
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
ID INTEGER Y
NAME VARCHAR2(10) Y
sys:
SQL> audit INSERT on test.a by access ;
審計已成功。
test:
SQL> INSERT INTO A VALUES(1,'10');
1 row inserted
SQL> commit;
完成后。
檢查系統審計表:
SQL> SELECT username,obj_name,sql_text FROM DBA_AUDIT_TRAIL WHERE USERNAME='TEST' and obj_name='A' AND SQL_text is not null;
USERNAME OBJ_NAME SQL_TEXT
-------------------------------------- --------------------------------------------------------------------------------
TEST A
INSERT INTO A VALUES(1,'10')
完成后,記得關閉審計
SQL> noaudit INSERT on test.a ;