TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-18 |
제목 | PL/SQL WRAPPER (PLSQL source 암호화) | ||
---|---|---|---|
PL/SQL Wrapper
PL/SQL procedure, function, trigger 는 Data dictionary 에 저장이 된다. 그러므로 어떤 유저든 해당 procedure, function, trigger 의 source 를 조회하고 edit 하여 변경할 수 있게 된다. PL/SQL Wrapper 는 Security Utility 라고 할 수 있다. 위에서 언급한 단점을 보완하기 위하여 oracle 에서 제공하는 Security Utility 이다. PL/SQL Wrapper 는 PL/SQL source code 를 hexadecimal digits 로 convert 한다. convert 된 source 자체로 procedure compile 이 가능하다. 또한 user_source view 에도 hexadecimal digits 로 보게된다. ADVANTAGES: 1. source code 를 확인할 수 없으므로 오용을 막는다. 2. Wrapped source code 는 portable 하다. 3. Platform independent 하다. 4. Import/Export 에서 Wrapped file 을 지원한다. Syntax : 사용법은 다음과 같다. unix 의 경우 : wrap 이란 파일이 $ORACLE_HOME/bin 에 위치. client 의 경우 : wrap(n) - n 은 version number -- 이란 파일이 $ORACLE_HOME/bin 에 위치 WRAP80 INAME= input_filename [ONAME= output_filename] 예) wrap23 iname=dept.sql Input and Output file content: PL/SQL wrapper 는 반드시 다음 문장중에 하나로 시작되는 파일이어야만 정상적으로 wrapping 이 되며 만약 그렇지 않다면 에러가 발생하거나 wrapping 없이 output 파일을 생성하게 된다. CREATE [OR REPLACE] PACKAGE CREATE [OR REPLACE] PACKAGE BODY CREATE [OR REPLACE] FUNCTION CREATE [OR REPLACE] PROCEDURE * 일반적으로 output 파일이 input 파일보다 크기가 증가한다. * 디폴트 output 파일의 확장자는 .plb 이다. * 일단 wrapped output 파일은 edit 할 수 없다. * 모든 DBMS Package 가 사용가능하다. (web toolkit 용 package 는 사용불가) Sample input file = dept.sql ============================================================ CREATE OR REPLACE PROCEDURE dept_sel IS t_dept varchar2(8); BEGIN select dname into t_dept from dept where loc='BOSTON'; END; ============================================================ output file = dept.plb ============================================================ CREATE OR REPLACE PROCEDURE dept_sel wrapped 0 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd 7 95a025ff 1 4 0 9 8 DEPT_SEL: 6 T_DEPT: 8 VARCHAR2: 1 8: 5 DNAME: 4 DEPT: 3 LOC: 1 =: 6 BOSTON: 0 0 0 25 2 0 1d 9a a3 b4 55 6a a0 51 a5 1c 81 b0 a0 ac :2 a0 b2 ee a0 7e 6e b4 2e ac e5 d0 b2 e9 b7 a4 b1 11 68 4f 17 b5 25 2 0 3 c 31 7 19 1d 21 4 25 26 2d b 38 a 3c 40 44 45 4c 50 53 57 58 5d 5e 63 67 68 8 6d 71 73 7e 82 84 8b 25 2 0 1 b 1 0 :2 1 9 12 11 :2 9 1 :2 b 16 22 1d 22 b e f :2 e 1d :4 4 :8 1 25 2 0 :2 1 3 0 :2 1 :6 3 :6 6 :5 7 :5 6 :2 5 :6 1 8d 2 :4 0 4 :3 0 10 20 7 5 1 :a 0 21 1 4 :2 0 21 2 5 :2 0 3 :3 0 3 7 9 :5 0 c a 0 1f 2 :6 0 5 :3 0 2 :3 0 6 :3 0 9 11 17 0 18 :3 0 7 :3 0 8 :2 0 9 :3 0 d 14 16 :4 0 1a 1b :4 0 e 12 0 b 0 19 :2 0 1d :3 0 20 12 20 1f 1d 1e :6 0 21 0 2 5 20 23 :2 0 1 21 24 :6 0 14 2 :3 0 1 8 1 3 1 d 1 10 1 f 2 13 15 1 1c 1 b 1 4 0 23 0 1 14 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 1 3 1 0 0 / ============================================================ |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |