Oracle使用審計監控使用者執行過的SQL語句
監控使用者執行過的SQL語句,經常會使用查詢V$SQL等檢視,但這樣查不出來多次執行相同的SQL語句,使用審計可以解決這個問題,這裡採用精細審計某個使用者的所有表。
用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 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$
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-716972/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- 後臺執行SQL語句(oracle)SQLOracle
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- java連線oracle執行sql語句JavaOracleSQL
- mysql執行sql語句過程MySql
- 一條sql語句的執行過程SQL
- 獲取oracle sql語句詳細些執行計劃OracleSQL
- jfinal中如何使用過濾器監控Druid監聽SQL執行?過濾器UISQL
- sql語句如何執行的SQL
- oracle常用後臺程序及sql語句執行流程OracleSQL
- GaussDB SQL查詢語句執行過程解析SQL
- mysql的sql語句執行流程MySql
- SQL 語句的執行順序SQL
- 【SQL】Oracle sql語句 minus函式執行效率與join對比SQLOracle函式
- 【SQL】Oracle資料庫監控sql執行情況SQLOracle資料庫
- SQL語句執行順序SQL
- 監控 SQL Server 的執行狀況SQLServer
- Laravel 獲取執行的sql語句LaravelSQL
- SQLServer統計監控SQL執行計劃突變的方法SQLServer
- Mybatis原始碼分析(五)探究SQL語句的執行過程MyBatis原始碼SQL
- Oracle“並行執行”——監控檢視Oracle並行
- sql語句執行緩慢分析SQL
- Mybatis 動態執行SQL語句MyBatisSQL
- Oracle - 執行過的SQL、正在執行的SQL、消耗資源最多的SQLOracleSQL
- Oracle基本SQL語句OracleSQL
- 分享一個查詢某個使用者過去一段時間內執行的SQL語句。SQL
- MySQL探祕(二):SQL語句執行過程詳解MySql
- SQL Server 查詢歷史執行的SQL語句SQLServer
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- SQL語句各子句的執行順序SQL
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- MySQL系列之一條SQL查詢語句的執行過程MySql
- Oracle sql執行計劃OracleSQL
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- MySQL cron定時執行SQL語句MySql
- SQL查詢語句 (Oracle)SQLOracle
- spark sql語句效能最佳化及執行計劃SparkSQL
- SQL 查詢語句的執行順序解析SQL