如何加密Oracle中的存储过程

原创 2004年09月16日 16:44:00

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

软件环境:
  • 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';

    结果:看不到其原码

Oracle中加密解密的数据库函数,创建(包含游标)和使用存储过程

1、加密函数  gen_encr: create or replace function gen_encr(v_input varchar2) return raw is v_result raw(2...
  • CongBird
  • CongBird
  • 2016年08月26日 10:46
  • 961

使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码

使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码   Oracle数据库系统自带的PL/SQL对象(包,存储过程,函数等)的代码绝大部分都是使用了wrap程...
  • Samdy_Chan
  • Samdy_Chan
  • 2016年01月31日 20:05
  • 4866

sqlServer存储过程的加密和解密方法

 ★加密存储过程: IF EXISTS (SELECT name FROM sysobjects WHERE name = 'encrypt_this' AND type = 'P'...
  • u013597888
  • u013597888
  • 2015年08月02日 14:25
  • 2242

在PL/SQL中调用存储过程--oracle

在oracle10中写好了存储过程,代码如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2,...
  • wozengcong
  • wozengcong
  • 2013年12月07日 10:46
  • 23990

存储过程之--MySQL与Oracle实现对比

存储过程之--MySQL与Oracle实现对比 1. 存储过程简介       我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure...
  • lqx0405
  • lqx0405
  • 2015年12月09日 17:06
  • 2173

Oracle存储过程详解(一)

存储过程创建语法: create [or replace] procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); 变量2...
  • wangxy799
  • wangxy799
  • 2016年04月20日 09:38
  • 12683

Oracle中的存储过程简单例子

接下来会更多的学习Oracle的存储过程
  • o9109003234
  • o9109003234
  • 2014年05月03日 11:17
  • 66215

oracle学习之第一个存储过程:打印Hello World

数据库对象:表、视图、索引、序列、同义词、存储过程、存储函数 存储过程:指的是存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过...
  • u012110719
  • u012110719
  • 2015年08月17日 17:24
  • 8124

Oracle存储过程基本语法和基础教程

1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) IS 变量1 INT...
  • u012618337
  • u012618337
  • 2014年12月04日 17:13
  • 5265

Oracle 存储过程创建和执行入门实例

以下emp表是orcl数据库实例自带的表。 执行存储过程前,必须先执行  SET serveroutput ON;  show error; 可以显示具体的执行错误信息。 1.  不带参数 A. ...
  • qq804702802
  • qq804702802
  • 2015年07月04日 11:45
  • 2212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何加密Oracle中的存储过程
举报原因:
原因补充:

(最多只允许输入30个字)