--查询当前session连接用户
select sid,serial#,username,program,machine,client_info
from v$session order by client_info
--在某个用户下创建登录历史表(也可在SYS下建表)
create table login_history
(
username varchar2(60), --用户名
machine varchar2(60), --机器名
login_time date, --登录时间
ip varchar2(50) --ip地址
program varchar2(60), --程序名
);
--需要登录SYSDBA账号运行(如果在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') ,program
from v$session
where audsid = userenv('sessionid');
commit;
end;
--创建查询session表时显示IP
create or replace trigger on_logon_trigger
after logon on database
begin
dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end;
--查询历史连接IP
select distinct IP from login_history order by IP;
|