Oracle使用審計監控使用者執行過的SQL語句

2021-09-23 19:37:57 字數 1356 閱讀 5814

監控使用者執行過的sql語句,經常會使用查詢v$sql等檢視,但這樣查不出來多次執行相同的sql語句,使用審計可以解決這個問題,這裡採用精細審計某個使用者的所有表。

用sys使用者登記

建立下面的的過程

create or replace procedure audituser(audituser in varchar2,oper in int)

ispolicyname varchar2(2000);

policynum varchar2(20);

cursor tables is select object_name from dba_objects where wner=audituser and              object_type='table';

begin

for tablename in tables loop

begin

policynum := 'audit1_';

policyname := concat(policynum,tablename.object_name);

if per=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 per=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;

查詢建立的審計策略:

select * from dba_audit_policies

入參audituser 表示要審計的使用者,oper=1表示審計使用者的所有表,oper=0表示刪除審計策略

審計完成之後最好刪除建立的審計策略。

查詢執行過的sql語句:

select timestamp,db_user,os_user,sql_text from dba_fga_audit_trail order by timestamp desc

系統允許一段時間之後,資料量增加,查詢會很慢,可刪除表資料

truncate table fga_log$

Oracle使用審計監控使用者執行過的SQL語句

1.使用管理員使用者sys,建立儲存過程 create or replace procedure audituser audituser in varchar2,oper in int is policyname varchar2 2000 policynum varchar2 20 cursor ...

oracle 審計使用者連線

為防止惡意使用者對系統進行攻擊,我們可以監控系統的連線情況。與此同時結合定期檢查和分析,便可以迅速的發現那些異常和非法的資料庫連線。實現對oracle系統登入的審計的方法不是唯一的,這裡給出使用觸發器記錄使用者登入資訊。希望能起到拋磚引玉的目的。1.建立記錄審計資訊的表 conn sec sec c...

oracle使用者登入審計

oracle中可以按照如下方式對使用者登陸失敗進行審計 1 確認sys.aud 是否存在?desc sys.aud 2 觀察user 表中lcount為非0的使用者,如果包含被鎖賬戶,則可以判定很有可能是該使用者登陸嘗試失敗過多 造成了賬戶被鎖 select name,lcount from sys...