user audit trigger
create or replace trigger on_logon after logon on database
declare
user_name varchar2(30);
os_user varchar2(30);
v_sid number;
v_su varchar2(15);
v_program varchar2(30);
v_ip varchar2(15);
begin
execute immediate
'select distinct sid from sys.v_$mystat' into v_sid;
execute immediate
'select osuser, username, program from sys.v_$session where sid = :b1'
into os_user, user_name, v_program using v_sid;
select sys_context('userenv','SESSION_USER') into v_su from dual;
select sys_context('userenv','IP_ADDRESS') into v_ip from dual;
insert into sys.logonlog values
(os_user, user_name, sysdate, v_su, v_ip, v_program);
declare
user_name varchar2(30);
os_user varchar2(30);
v_sid number;
v_su varchar2(15);
v_program varchar2(30);
v_ip varchar2(15);
begin
execute immediate
'select distinct sid from sys.v_$mystat' into v_sid;
execute immediate
'select osuser, username, program from sys.v_$session where sid = :b1'
into os_user, user_name, v_program using v_sid;
select sys_context('userenv','SESSION_USER') into v_su from dual;
select sys_context('userenv','IP_ADDRESS') into v_ip from dual;
insert into sys.logonlog values
(os_user, user_name, sysdate, v_su, v_ip, v_program);
0