오라클 DBMS_OBFUSCATION_TOOLKIT 를 이용하여 테이블의 컬럼을 암호화했습니다
testtable - id, juno(암호화)하고 보여줄때는 view파일을 통해보여주는데요
viewtable -id, juno(복호화된자료)
문제는 viewtable에 juno로 검색시 full scan을 합니다. full scan없이 index가 가능할까요?
해당 방식으로도 인덱싱 컬럼 모두 equal 연산이면 index scan이 가능합니다.
단, range가 포함된 연산이면 현재의 b-tree 인덱스 방식으론 불가능합니다.
이 경우 각종 암호화 업체에서 사용하는 DOMAIN Index 를 만드는 방법 밖에 없습니다
사용자 정의 인덱스를 만들어 인덱스 정렬 형태를 암호화된 값 자체가 아닌 복호화된 값으로 정렬 유지하도록 만드는 방식이지요.
이는 검색엔진에서 어떤 문장에 대해 형태소를 분리하여 해당 형태소 단어가 해당 문장을 가리키게 인덱싱 하는 방식에서도 사용되고 있고요(Oracle Text 참고)
결론은 일반적인 방식으로는 인덱스 탐색이 불가능합니다.
암호화 솔루션을 사용하는 이유이기도 하지요
감사합니다.
업무에 참고가 많이 되었습니다.