RDB/Oracle

oracle user audit

세모데 2021. 8. 9. 17:47

오라클 계정 사용 유무 확인 (서비스 부하가 많은 곳은 사용하지 말것)

 

1. audit table

우선 trigger에서 사용할 테이블부터 생성

 

create table system.audit_schema 

(

    username varchar2(30),

    sess        varchar2(256),

    host        varchar2(256),

    login_dt   date,

    osuer      varchar2(256),

    program  varchar2(48)

);

 

2. audit trigger

CREATE OR REPLACE TRIGGER "LOGON_AUDIT_TRIGGER" AFTER
LOGON ON DATABASE
DECLARE
sess number(10);
prog varchar2(70);
BEGIN
IF sys_context('USERENV','BG_JOB_ID') is null and user = 'CERT' THEN
   sess := sys_context('USERENV','SESSIONID');
   SELECT program INTO prog FROM v$session WHERE audsid = sess
   and rownum<=1;
   INSERT INTO system.audit_schema VALUES (
   user,sys_context('USERENV','SESSIONID'),
   sys_context('USERENV','HOST'),
   sysdate,
   sys_context('USERENV','OS_USER'),

   prog);
END IF;
END;