方法1:通过触发器去记录ip
--在sys的用户登录下创建表,来记录客户端使用tcp协议连接的ip地址
--如果客户端没用oracle的tcp连接,就不会返回IP地址
create table login_history
(
osuser varchar2(60), --客户端操作系统用户名
username varchar2(60), --用户名
machine varchar2(60), --机器名
program varchar2(60), --进程
login_time date, --登录时间
ip varchar2(50) --ip地址
);
--在sys用户登录下创建触发器,来根据v$ssesion记录ip
create or replace trigger login_log
after logon on database
begin
insert into login_history
SELECT osuser, username, machine,program, logon_time, sys_context('userenv', 'ip_address')
from v$session
where audsid = userenv('sessionid');
commit;
end;
/
--查看数据
select * from login_history;
select distinct ip from login_history;
方法2:通过触发器把ip反写到v$session表
create or replace triggeron_login_trigger
after logon on database
begin
dbms_application_info.set_client_info(sys_context('USERENV','IP_ADDRESS'));
end;
/
补充方法3:通过oracle监听日志去确定客户端连接IP
通过对Oracle数据库监听日志分析listener.log
find / -name '*listener.log*'
sed -n '/07-JUN-2024 08:00:00 /,/01-JUN-2024 08:00:00/p' listener.log
如何查看oracle客户端连接的IP地址
未经允许不得转载:徐万新之路 » 如何查看oracle客户端连接的IP地址
最新评论
这个牛
放下欲望,男人从来不醉,充分且必要
勇气、责任、自信、创新,为天下先!
软件即数据,软件即服务,软件即管理,软件就是对人类各种社会活动的仿真和记录。软件很重要,但软件不可能凌驾于业务之上,尤其不可能高人一等。