1.使用管理員使用者sys,建立儲存過程:
create or replace procedure audituser(audituser in varchar2,oper in int)
is policyname varchar2(2000);
policynum varchar2(20);
cursor tables is select object_name from dba_objects where owner=audituser and object_type='table';
begin
for tablename in tables loop
begin
policynum := 'audit1_';
policyname := concat(policynum,tablename.object_name);
if oper=1 then
dbms_fga.add_policy(object_schema=>audituser,object_name=>tablename.object_name,policy_name => policyname,
statement_types=>'select,insert,update,delete',enable=>true);
end if;
if oper=0 then
dbms_fga.drop_policy(object_schema=>audituser,object_name=>tablename.object_name,policy_name => policyname);
end if;
exception
when others then
null;
end;
end loop;
commit;
end;
入參audituser 表示要審計的使用者,oper=1表示審計使用者的所有表,oper=0表示刪除審計策略
2.執行測試,輸入相關引數。
3.開啟系統,使用以下語句,查詢審計結果,系統操作的表。
select * from dba_audit_trail;
4.可使用截斷表刪除資料。
truncate table dba_audit_trail
注意的地方:必須 使用sys
審計完成之後最好刪除建立的審計策略。
查詢執行過的sql語句:
select timestamp,db_user,os_user,sql_text from dba_fga_audit_trail order by timestamp desc
系統允許一段時間之後,資料量增加,查詢會很慢,可刪除表資料
truncate table fga_log$
查詢建立的審計策略:
select * from dba_audit_policies
Oracle使用審計監控使用者執行過的SQL語句
監控使用者執行過的sql語句,經常會使用查詢v sql等檢視,但這樣查不出來多次執行相同的sql語句,使用審計可以解決這個問題,這裡採用精細審計某個使用者的所有表。用sys使用者登記 建立下面的的過程 create or replace procedure audituser audituser i...
oracle 審計使用者連線
為防止惡意使用者對系統進行攻擊,我們可以監控系統的連線情況。與此同時結合定期檢查和分析,便可以迅速的發現那些異常和非法的資料庫連線。實現對oracle系統登入的審計的方法不是唯一的,這裡給出使用觸發器記錄使用者登入資訊。希望能起到拋磚引玉的目的。1.建立記錄審計資訊的表 conn sec sec c...
oracle使用者登入審計
oracle中可以按照如下方式對使用者登陸失敗進行審計 1 確認sys.aud 是否存在?desc sys.aud 2 觀察user 表中lcount為非0的使用者,如果包含被鎖賬戶,則可以判定很有可能是該使用者登陸嘗試失敗過多 造成了賬戶被鎖 select name,lcount from sys...