如何加密Oracle中的存储过程,从而在schema下看不到其源码?

转自http://www.dbonline.cn

  • 软件环境:
      1、操作系统:Windows 2000 Server
      2、数 据 库:Oracle 8i R2 (8.1.7) for NT 企业版
      3、安装路径:C:\ORACLE
    • 实现方法:
      1、
        D:\>set NLS_LANG=AMERICAN_AMERICA.USACII7

        D:\>set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

        D:\>set
        直接打set命令可以查看环境变量


      2、
      在D:\下创建a.sql文件,内容如下:
      create or replace procedure test1(i in number) as
      begin
      dbms_output.put_line('输入参数是'||to_char(i));
      end;

      3、
      D:\>wrap iname=a.sql
      PL/SQL Wrapper: Release 8.1.7.0.0 - Production on Tue Nov 27 22:26:48 2001
      Copyright (c) Oracle Corporation 1993, 2000.All Rights Reserved.
      Processing a.sql to a.plb

      4、
      打开a.plb,现在它的内容如下:
      create or replace procedure test1 wrapped
      0
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      abcd
      3
      7
      8106000
      1
      4
      0
      8
      2 :e:
      1TEST1:
      1I:
      1NUMBER:
      1DBMS_OUTPUT:
      1PUT_LINE:
      1输入参数是:
      1||:
      1TO_CHAR:
      0
      0
      0
      1f
      2
      0 1d 9a 8f a0 b0 3d b4
      55 6a :2 a0 6b 6e 7e :2 a0 a5
      b b4 2e a5 57 b7 a4 b1
      11 68 4f 17 b5
      1f
      2
      0 3 4 1d 19 18 25 15
      2a 2e 32 36 3a 3d 42 45
      49 4d 4e 50 51 56 57 5c
      5e 62 64 70 74 76 7f
      1f
      2
      0 1 b 11 16 :2 11 10 :3 1
      :2 d 16 22 24 2c :2 24 :2 16 :a 1
      1f
      2
      0 :9 1 :d 3 :2 2 :3 1 4 :2 1
      81
      4 :4 0 1 :a 0 1b
      1 :4 0 5 :2 0
      :2 3 :3 0 2 :7 0
      5 4 :3 0 7
      :2 0 1b 2 8
      :2 0 4 :3 0 5
      :3 0 a b 0
      6 :4 0 7 :2 0
      8 :3 0 2 :3 0
      7 f 11 9
      e 13 :3 0 :2 c
      15 :2 0 17 10
      1a :3 0 1a 0
      1a 19 17 18
      :6 0 1b :2 0 2
      8 1a 1d :2 0
      1 1b 1e :8 0

      13
      4
      :3 0 1 3 1
      6 1 10 2
      d 12 1 14
      1 16 2 16
      1c
      1
      4
      0
      1d
      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
      /

      5、运行a.plb
      SQL> @d:\a.plb
      过程已创建。

      6、运行存储过程
      SQL> set serveroutput on
      SQL> execute test1(1);
      输入参数是1
      PL/SQL 过程已成功完成。

      7、查看存储过程的代码
      SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';

      结果:看不到其原码
    Google

    posted on 2005-07-05 12:26  Pierce  阅读(573)  评论(0)    收藏  举报

    导航