oracle ip 执行了sql,谁能帮帮忙哇 ~如何监控某个ip执行的所有sql语句

您所在的位置:网站首页 oracle监控执行了哪些语句 oracle ip 执行了sql,谁能帮帮忙哇 ~如何监控某个ip执行的所有sql语句

oracle ip 执行了sql,谁能帮帮忙哇 ~如何监控某个ip执行的所有sql语句

2023-12-19 00:38| 来源: 网络整理| 查看: 265

我定义了一个触发器

CREATE OR REPLACE TRIGGER LOGON_HISTORY

AFTER LOGON ON DATABASE --WHEN (USER='EQSP') --ONLY FOR USER 'EQSP'

declare

m_path varchar2(200);

v_sql varchar2(50);

client_ip varchar2(20);

v_pkid number(10);

BEGIN

IF userenv('sessionid')!=0 THEN

select SYS_CONTEXT('USERENV','IP_ADDRESS') into client_ip from dual;

if client_ip = '10.10.3.99' then

begin

insert into session_history

select session_history_id.nextval pkid, username,sid,AUDSID,OSUSER,ACTION,SYSDATE,null,SYS_CONTEXT('USERENV','IP_ADDRESS'),TERMINAL,PROGRAM,null

from v$session s

where audsid = userenv( 'sessionid' )

and  s.USERNAME NOT IN ('SYSTEM','SYS')

AND S.USERNAME IS NOT NULL;

select session_history_id.currval  into v_pkid from dual;

select rtrim(c.value, '/') || '/' || d.instance_name || '_ora_' ||ltrim(to_char(a.spid)) || '.trc' into m_path

from sys.v_$process a, sys.v_$session b, sys.v_$parameter c, sys.v_$instance d

where a.addr = b.paddr

and b.audsid = sys_context('userenv', 'sessionid')

and c.name = 'user_dump_dest';

update session_history

set path=m_path

where pkid=v_pkid;

commit;

EXECUTE IMMEDIATE 'Alter session set tracefile_identifier =''miniyal''';

EXECUTE IMMEDIATE 'alter session set timed_statistics=true';

EXECUTE IMMEDIATE 'alter session set sql_trace = true' ;

end;

else

null;

end if;

else

null;

end if;

END;

客户端 ip是通过pl/sql登录的 在指定路径下没找到trace文件 是不是触发器的session 和 pl/sql登录进去的session 不是同一个?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3