oracle的wrap加密功能,oracle wrap 工具加密sql源代码

oracle 提供了wrap 工具加密你的sql 源代码,现在很编程都把业务逻辑写进了数据库,一些核心的代码不想被公开,比如使用传统的方法创建procedure,源代码是明文保存在oracle数据字典里面的,很容易查看,在Oracle中,推出了Wrap技术,既可以实现代码的加密,使用户不能够直接获取到程序代码的DDL语句,同时不会影响到程序代码的执行。在最新的Oracle版本中,提供了两种方式进行Wrap加密:

1       Wrap命令行工具,可以在命令行中实现源代码文件的加密;

2       Dbms_ddl包,其中包括的方法也可以实现在PL/SQL中进行代码的加密;

下面先看wrap 加密码方法

[oracle@orazhang sql]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 – Production on 星期五 6月 3 13:59:17 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

idle> conn anbob/anbob

Connected.

anbob@ORCL> create or replace  procedure p_testwrap

2  is

3  begin

4  dbms_output.put_line(‘This is anbob”s test…’);

5  end;

6  /

Procedure created.

anbob@ORCL> set serveroutput on;

anbob@ORCL> exec p_testwrap;

This is anbob’s test…

PL/SQL procedure successfully completed.

anbob@ORCL> exec dbms_output.put_line(dbms_metadata.get_ddl(‘PROCEDURE’,’P_TESTWRAP’));

CREATE OR REPLACE PROCEDURE “ANBOB”.”P_TESTWRAP”

is

begin

dbms_output.put_line(‘This is anbob”s test…’);

end;

PL/SQL procedure successfully completed.

anbob@ORCL> host

[oracle@orazhang sql]$ vi p_testwrap.sql

[oracle@orazhang sql]$ more p_testwrap.sql

CREATE OR REPLACE PROCEDURE “ANBOB”.”P_TESTWRAP”

is

begin

dbms_output.put_line(‘This is anbob”s test…’);

end;

[oracle@orazhang sql]$ wrap iname=p_testwrap.sql oname=p_testwrap.pld

PL/SQL Wrapper: Release 10.2.0.1.0- Production on 星期五 6月  03 14:20:32 2011

Copyright (c) 1993, 2004, Oracle.  All rights reserved.

Processing p_testwrap.sql to p_testwrap.pld

[oracle@orazhang sql]$ ls

p_testwrap.pld  p_testwrap.sql

[oracle@orazhang sql]$ more p_testwrap.pld

CREATE OR REPLACE PROCEDURE P_TESTWRAP wrapped

a000000

354

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

7

57 9a

oXaZXiDoYmC01ceuoatrRGf9fPgwg5nnm7+fMr2ywFzn4yhSssu9KMB0aY+bdIvAwDL+0obA

UpuySv4osr3nsrMdBjAsriTqsoHIX0fgRMryRwyXrgnqlisWoWLRs+vrXrGgi8CBxy2L4Kam

JA0EeA==

/

exit

anbob@ORCL> @p_testwrap.pld

Procedure created.

anbob@ORCL> exec p_testwrap;

This is anbob’s test…

PL/SQL procedure successfully completed.

anbob@ORCL> exec dbms_output.put_line(dbms_metadata.get_ddl(‘PROCEDURE’,’P_TESTWRAP’));

CREATE OR REPLACE PROCEDURE “ANBOB”.”P_TESTWRAP”

wrapped

a000000

354

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

7

57

9a

oXaZXiDoYmC01ceuoatrRGf9fPgwg5nnm7+fMr2ywFzn4yhSssu9KMB0aY+bdIvAwDL+0obA

UpuySv4osr3nsrMdBjAsriTqsoHIX0fgRMryRwyXrgnqlisWoWLRs+vrXrGgi8CBxy2L4Kam

J

A0EeA==

PL/SQL procedure successfully completed.

anbob@ORCL>

################下面使用另一个方法 dbms_ddl ##############

sys@ORCL> exec dbms_ddl.create_wrapped(‘create or replace  procedure p_testwrap is begin dbms_output.put_line(”This is anbob ”” test…”); end;’);

PL/SQL procedure successfully completed.

sys@ORCL> exec p_testwrap;

This is anbob ‘ test…

PL/SQL procedure successfully completed.

sys@ORCL> exec dbms_output.put_line(dbms_metadata.get_ddl(‘PROCEDURE’,’P_TESTWRAP’));

CREATE OR REPLACE PROCEDURE “SYS”.”P_TESTWRAP” wrapped

a000000

354

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

7

55

96

04x99q2ywDxwGFIRjwDxK5zFNdQwg5nnm7+fMr2ywFzn4yhSssu9KMB0aaV0K7jAMv7SXrhS

m7JK/iiyveeysx0GMCyuJOqygchfR+BEyvJHDJeuCWnq6hahYtGz6+tesaAruIHHLcmmpu8T

B

NM=

PL/SQL procedure successfully completed.

sys@ORCL>

打赏

8732971891f4ba05583674ca6b8145ac.png微信扫一扫,打赏作者吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值