운영체제 : Windows7 64-bit
프로그램 및 버전 : Oracle11g R2
※ 주의사항
항상 연습을 먼저하고 실전으로... |
1. 작업개요
DB를 구축하다보면 사용자 등록을 해야 할 경우도 있고... 사용자 등록을 한다면 사용자에 대한 주민등록번호 및 비밀번호와 같은 데이터도 넣어야 합니다. 이런 데이터는 암호화를 해서 넣어야 합니다.
* DES(Data Encryption Standard) 암호화 방법을 사용할 계획 입니다. 이 암호화 방식은 오라클 내에 포함된 보안기능으로 DBMS_OBFUSCATION_TOOLKIT을 사용하여 중요 데이터를 암호화, 복호화 합니다. 자세한 내용은 검색^^ |
2. 작업내용
1) 커멘드 창을 띄워(Windows Key + R(실행) -> CMD입력 후 엔터) 관리자 계정으로 로그인 한다. 주의해야 할 점은
오라클 홈의 RDBMS\ADMIN 경로로 이동하여 접속하여야 한다.
|
C:\Users\AHN> cd 오라클홈경로\11.2.0\db_1\rdbms\admin 엔터키 C:\오라클홈경로\11.2.0\db_1\rdbms\admin>sqlplus "/as sysdba" 엔터키 ... 다음에 접속됨: Oracle ... ... ... SQL> |
2) dbmsobtk.sql, prvtobtk.plb실행
|
SQL>@dbmsobtk.sql 엔터 ... ... ... SQL>@prvtobtk.plb 엔터 ... ... ... |
3) DBMS_OBFUSCATION_TOOLKIT을 public으로 변경
|
SQL>grant execute on dbms_obfuscation_toolkit to public; |
4) 암호화 복호화에 필요한 패키지 생성
* 패키지는 실제 사용자 계정으로 로그인하여 패키지를 만들어야 한다.
SQL>
SQL> CREATE OR REPLACE PACKAGE BODY CryptString AS FUNCTION encrypt(Str VARCHAR2, hash VARCHAR2) RETURN VARCHAR2 AS FUNCTION decrypt(xCrypt VARCHAR2, hash VARCHAR2) RETURN VARCHAR2 AS END CryptString; |
5) 시험해보기(데이터 입력)
* 사용자ID, 사용자이름, 비밀번호가 들어가는 테이블(userinfo) 생성을 해둔다.
SQL>insert into userinfo(userid, username, pw) values('test1','ahn', CryptString.encrypt('1234','key')); |
* 여기에서 1234가 사용자가 입력한 비밀번호 이고, key는 암호화 할때 사용하는 key이다. 나중에 복호화 할 때
key를 알아야 사용자가 입력한 비밀번호를 확인할 수 있다.
5) 시험해보기(데이터 조회)
* 사용자ID, 사용자이름, 비밀번호가 들어가는 테이블(userinfo) 생성을 해둔다.
SQL>select userid, CryptString.decrypt(pw, 'key') pw from userinfo where CryptString.decrypt(pw, 'key') = '1234'; |
3. 작업결과
자세한 캡쳐는 나중에... |
※ 참고 사이트
위 사이트를 참고 하였습니다. |
'→ 데이터베이스 > ORACLE 관리' 카테고리의 다른 글
[ORACLE] Database 세션 확인하기(누가 접속했나~ 확인하기) (0) | 2015.02.01 |
---|---|
[ORALCE] 사용자(User) 정보 보기 (1) | 2013.01.08 |
[ORACLE] 오라클 DATE형식(Date type) 조회(select) 시 시/분/초 정보도 보이게 하기 (0) | 2012.10.29 |
[ORACLE] 시간 계산표 (0) | 2012.06.20 |
[ORACLE] 테이블 스페이스 용량 늘리기 (0) | 2012.05.15 |