안녕하세요.
사용자 정보를 받고 있는 테이블에서 column 컬럼(최대 20자리)을 암호화 하는 일이 생겨서 문의를 드립니다.
소스를 수정할 수 없어 방법을 찾다가 트리거라는 것을 알게 되어 보고 있는데요.
의문이 생겨 문의를 드립니다.
현 상태는 사용자 정보가 일정 시간마다 수십에서 수백건씩 들어오고 있습니다.
insert 할때 트리거를 걸려고 하니 부하가 많이 걸리것 같아 이것 저것 찾아보니 statement insert 이걸 사용하면
한건 한건 트리거가 실행되는게 아니라 모든 insert가 끝나고 한번만 실행이 되는것 같아 아래와 같이 구성을 했습니다.
create or replace trigger test_trigger
after statement insert
on test_table(column)
bebin
update test_table
set column = RAWTOHEX(DBMS_CRYPTO.HASH(TO_CLOB(TO_CHAR(column)), 3))
where length(column) < 21
end;
아직 DBMS_CRYPTO 권한을 받지 못해서 테스트는 못하고 구글링만 하고 있습니다.
제가 정확히 알고 한건지 조언 부탁드립니다.