oracle wrapped原理,oracle 加密存储过程create_wrapped

create_wrapped

除了wrap函数外,在dbms_ddl包中还包括三个重载的create_wrapped过程:

PROCEDURE create_wrapped(ddl VARCHAR2);

PROCEDURE create_wrapped(ddl dbms_sql.varchar2s, lb PLS_INTEGER,

ub PLS_INTEGER);

PROCEDURE create_wrapped(ddl dbms_sql.varchar2a, lb PLS_INTEGER,

ub PLS_INTEGER);

它们拥有和wrap一样的入参和出参。使用方法也和wrap函数类似,不过要注意它们是过程(而不是函数)。

与函数wrap不同,过程create_wrapped不但加密源代码,而且还会在数据库中执行加密后的密文。我们先看一个例子,我要在数据库中以加密的方式创建这个过程:

create or replace procedure p1asbegin

dbms_output.put_line(’yuechaotian’);

end;

我可以借助过程dbms_ddl.create_wrapped:

SQL> begin 2 dbms_ddl.create_wrapped 3 (’create or replace procedure p1

4    as

5    begin

6      dbms_output.put_line(‘’yuechaotian’‘); --*2个单引号*

7    end;’);

8 end;

9 /

PL/SQL 过程已成功完成。

SQL> set serveroutput on

SQL> exec p1

yuechaotian

PL/SQL 过程已成功完成。

看看加密后的代码:

– 1. 从视图 user_source 中查询SQL> set pagesize 1000SQL> col text format a100

SQL> set line 2000

SQL> SELECT TEXT FROM user_source WHERE NAME = ‘P1′;

TEXT

————————————————————————–

procedure p1 wrapped

a000000

354

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

7

4a 81

aVtlrmIdKjyE1rQszxgCZ9Z7+YEwg5nnm7+fMr2ywFwWfF0Jabh0OdPc4rlBP2ejNa+V+nhX

GSQhFMohoijjhhB6c3Eqd9UMXreC004MZbZOdyo7N55Mc3HyiKbboLaf

– 2. 使用 get_ddl 查询

SQL> set long 10000

SQL> select dbms_metadata.get_ddl(’PROCEDURE’,'P1′) from dual;

DBMS_METADATA.GET_DDL(’PROCEDURE’,'P1′)

————————————————————————

CREATE OR REPLACE PROCEDURE “TEST”.”P1″ wrapped

a000000

354

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

7

4a 81

aVtlrmIdKjyE1rQszxgCZ9Z7+YEwg5nnm7+fMr2ywFwWfF0Jabh0OdPc4rlBP2ejNa+V+nhX

GSQhFMohoijjhhB6c3Eqd9UMXreC004MZbZOdyo7N55Mc3HYiKbboLaf

这样,你就在数据库中创建了一个加密源代码的存储过程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值