본문 바로가기

빅데이터과정/PL/SQL

#15_140703_PL_SQL_암호화

728x90

# 암호화





# 위 텍스트 파일에 패키지와 패키지 바디를 수행한다 


1.     EMP_INFO 패키지의 명세 코드를 아래의 파일 이름으로 저장
ed  emp_info_package.sql

2.     EMP_INFO 패키지의 명세 코드를 아래의 파일 이름으로 저장
ed  emp_info_package_body.sql

3.     emp_info_package_body.sql 를 emp_info_package.plb 로 암호화 시킴
C:\Users\실습실> wrap iname=emp_info_package_body.sql  oname= emp_info_package.plb

4.     scott 계정으로 다시 접속
C:\Users\실습실> sqlplus scott/tiger

5.     암호와된 body 스크립트를 열어보시오
ed emp_info_package.plb

    - EMP_INFO 패키지의 명세 소스확인
            select text
            from user_source
            where type = 'PACKAGE' nad name = 'EMP_INFO';

    - EMP_INFO 패키지의 바디 소스 확인
            select text
            from user_source
            where type = 'PACKAGE BODY' and name = 'EMP_INFO';




# 패키지 바디가 암호화된 모습을 확인할 수 있다

6.     sql 파일과 plb 파일을 실행시켜 패키지 생성
패키지 파일은 암호화할 필요가 없고 패키지 바디는 암호화가 되있는 상태이다다른 곳에서 2개의 파일을 가지고 실행하면 소스가 보호된다.
SQL> @emp_info_package.sql
패키지가 생성되었습니다.
패키지 spec 생성

SQL> @emp_info_package.plb
패키지 본문이 생성되었습니다.
# plb 파일로 암호화된 패키지 body 생성




문제212. 사원 테이블에 순위 컬럼인 rnk를 추가하고 추가한 순위 컬럼에 직업별 순위를 갱신하는 프로시져를 생성하시오그리고 프로시져를 패키지로 만들어 암호화하시오





ALTER TABLE EMP
ADD rnk NUMBER(10);

CREATE OR REPLACE PROCEDURE pro_rnk
IS
CURSOR emp_cursor IS
 SELECT ename, sal, job, empno, dense_RANK() OVER(PARTITION BY job ORDER BY sal desc) 순위
 FROM EMP;
BEGIN 
 FOR emp_record IN emp_cursor LOOP
  UPDATE EMP
  SET rnk=emp_record.순위
  WHERE empno=emp_record.empno;
 END LOOP;
END;
/

CREATE OR REPLACE PACKAGE pack_rnk is
 PROCEDURE pro_rnk;
END pack_rnk;
/

CREATE OR REPLACE PACKAGE BODY pack_rnk IS
 PROCEDURE pro_rnk IS
  CURSOR emp_cursor IS
   SELECT ename, sal, job, empno, dense_RANK() OVER(PARTITION BY job ORDER BY sal desc) 순위
   FROM EMP;
  BEGIN 
   FOR emp_record IN emp_cursor LOOP
    UPDATE EMP
    SET rnk=emp_record.순위
    WHERE empno=emp_record.empno;
   END LOOP;
 END pro_rnk;
END pack_rnk;
/

SQL> ed pack_rank_body.sql
C:\Users\실습실>wrap iname=pack_rank_body.sql oname=pack_rank_body.plb

SQL> ed pack_rank_body.plb

'빅데이터과정 > PL/SQL ' 카테고리의 다른 글

#16_140704_PL_SQL_종속성  (0) 2014.07.15
#15_140703_PACKAGE_OVERLOAD  (0) 2014.07.15
#15_140703_PL_SQL_PACKAGE  (0) 2014.07.15
#14_140702_PL_SQL_TRIGGER  (0) 2014.07.15
#14_140702_PL_SQL_RETURNING  (0) 2014.07.15