본문 바로가기

Database/PLSQL

094 - [Oracle PL/SQL] Triggers - system event trigger

 

 

 

  • sys 사용자로 로그인
-- 로그인을 sys 유저로 로그인.

alter session set container=orclpdb;
show con_name
------------------------------

Session altered.

CON_NAME 
------------------------------
ORCLPDB

 

 

 

  • 테이블 생성 및 트리거 생성
drop table log_table;
/
create table log_table
(user_id varchar2(100),
 log_date date,
 action varchar2(100)
 );



create or replace trigger logon_t
after logon on database
begin
    insert into log_table values (user,sysdate,'logon');
end;
/

create or replace trigger logoff_t
before logoff on database
begin
    insert into log_table values (user,sysdate,'logoff');
end;

 

 

 

  • hr 사용자로 로그인 및 로그아웃
hr/hr@orclpdb

 

 

 

  • sys 사용자로 테이블 확인 - hr 사용자는 접근 불가임
select user_id,to_char(log_date,'dd-mm-yyyy hh:mi:ss') as DATE1, action
from log_table;
------------------------------
USER_ID       DATE1               ACTION         
------------- ------------------- ---------------
HR            08-05-2024 01:34:33 logon          
HR            08-05-2024 01:35:20 logoff

 

 

 

-- 트리거 삭제
drop trigger logon_t;
drop trigger logoff_t;