利用触发器实现查看所有客户端IP的方法
收集了网上的一些做法,做个总结,方便以后用,其操作步骤:
1 在sys模式下创建一个表,用于记录客户端登录数据库服务器的详细信息。
create table login_history
(username varchar2(60),
machine varchar2(60),
login_time date,
ip varchar2(50)
);
2 在sys模式下创建一个触发器
create or replace trigger login_log
after logon on database
begin
insert into login_history
select username,machine,sysdate,sys_context('userenv','ip_address')
from v$session where audsid = userenv('sessionid');
commit;
end;
3 一些查看session数的实例(以sys用户登录)
查看login_history表
select * from login_history;
查看当前的所有session数
select count(*) from v$session;
查看当前的客户端计算机名为RHEL的所有session数
select count(*) from v$session where machine = 'RHEL';
查看当前的各个客户端计算机的连接数
select count(*) , machine from v$session group by machine;
万望 发表于 2016-4-20 22:01
来混个脸熟,楼主V5
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://p.delit.cn/) | Powered by Discuz! X3.2 |