티스토리 뷰

최근 프로젝트 진행하면서

오라클 데이터베이스에서 데이터 암호화 할 일이 있어서

이전과 같이 간단하게 'DBMS_CRYPTO' 패키지를 사용하여서 간단히 암호화 할려고 했는데요...



아.. 글쎄 관리자님이 자기도 할 줄 모르니까... 알아서 하랩니다......


그래서..

저는 그냥 쿨하게 알아서 했죠...ㅋㅋㅋㅋ


일단 dbms_crypto 패키지에 대한 자세한 내용은 아래의 오라클 문서에 보시면 (11g 기준)

를 살펴보시면 사용법을 자세히 보실 수 있습니다.


우선, 오라클의 dbms_crypto 패키지는 오라클 설치 시에 모두 설치되어 있습니다.

이 외에도 오라클의 추가 패키지가 

$ORACLE_HOME/rdbms/admin

의 디렉토리에 보시면 모두 있습니다.


우선 dbms_crypto 패키지는 해당 패키지만으로 사용하실 수 없고 dbms_obfuscation_toolkit 패키지도

함께 추가해주셔야 합니다.

dbms_crypto 패키지만 추가하니까 별 소용이 없더라구요.. 오라클 문서에는 


"DBMS_CRYPTO is intended to replace the DBMS_OBFUSCATION_TOOLKIT, ..."


이라고, 대체하려는 듯한 늬앙스? 인데....

dbms_crypto 패키지만 추가해서는 안됩니다..(경험에서 드리는 말씀입니다..)

그래서 두 개의 패키지를 위해서 필요한 파일은 다음과 같습니다.

/$ORACLE_HOME/rdbms/admin/dbmsobtk.sql

/$ORACLE_HOME/rdbms/admin/prvtobtk.plb


암튼 두 패키지를 추가하는 방법은 다음과 같습니다..


1. 오라클 서버에 sysdba으로 접속합니다.

oracle@hanuli7:/home/oracle>sqlplus "/ as sysdba"


2. 'dbmsobtk.sql' 파일을 실행합니다.

@/oracle/rdbms/admin/dbmsobtk.sql


3. 'prvtobtk.plb' 파일을 실행합니다.

@/oracle/rdbms/admin/prvtobtk.plb


4. 추가 후에는 시스템 계정으로만 사용 가능하기 때문에 권한을 변경하여 주어야 합니다.

저 같은 경우에는 모두다 실행 가능하도록 하였지만 필요하다면 특정 계정에만 실행권한 주시면 됩니다.

grant execute on dbms_crypto to public;

grant execute on dbms_obfuscation_toolkit to public;


이젠 오라클에서 dbms_crypto 패키지에 함수 실행해보시면 됩니다. ㅋㅋ


모쪼록 많은 도움 되셨으면 좋겠습니다. ^^


참고로 실제 콘솔에서 실행 전체 과정입니다.


댓글