Oracle10g增加線上加密過程的功能

yangtingkun發表於2010-12-05

Oracle提供了WRAP工具,可以對儲存過程進行加密,而在10g中,這個操作已經可以在資料庫中完成。

 

 

OracleDBMS_DDL增加了一個WRAP函式,透過這個函式,就可以返回加密後的過程:

SQL> select dbms_ddl.wrap('create procedure p_wrap as begin null; end;') from dual;

DBMS_DDL.WRAP('CREATEPROCEDUREP_WRAPASBEGINNULL;END;')
--------------------------------------------------------------------------------------
create procedure p_wrap wrapped
a000000
354
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
25 59
fpR2Lh8mLtoZnFowf5kMdCUxdiYwg5nnm7+fMr2ywFwW45aW8lZpuHQruMAy/tJepZmBCC0r
uIHHLcmmprNznsM=

有了這個功能,使用者就不需要單獨執行命令列的wrap工具了,儲存過程的加密工作在資料庫中就可以完成。

Oracle還有更加方便的功能,根據未加密的儲存過程直接建立加密後的過程:

SQL> exec dbms_ddl.create_wrapped('create procedure p_wrap as begin null; end;')

PL/SQL procedure successfully completed.

SQL> select text from user_source where name = 'P_WRAP' order by 1;

TEXT
------------------------------------------------------------------------------------
procedure p_wrap wrapped
a000000
354
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
25 59
fpR2Lh8mLtoZnFowf5kMdCUxdiYwg5nnm7+fMr2ywFwW45aW8lZpuHQruMAy/tJepZmBCC0r
uIHHLcmmprNznsM=

對於長度超過32767的儲存過程,CREATE_WRAPPED過程還過載了其他兩個方法,使用者可以將儲存過程切割成25632767的字串,儲存到一個索引表中,介面是DBMS_SQL.VARCHAR2SDBMS_SQL.VARCHAR2A

使用CREATE_WRAPPED使得建立機密的儲存過程變得更加的簡單。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-680950/,如需轉載,請註明出處,否則將追究法律責任。

相關文章