Oracle—sql源码加密

文档目录

  • 1、需求场景
  • 2、实现方式

1、需求场景

在某些场景下,需将数据库里的函数、存过或者包体的sql源码进行加密,同时保留其内部调用的功能;

2、实现方式

通过如下2种方式进行过的脚本加密后,在对象名称的后面会加一个 wraped 关键字;
适用的对象有:
A:function
B:procedure
C:package body

1)调用 wrap 命令行工具

  • wrap 工具位于服务器的 $ORACLE_HOME/bin 路径下,以Oracle用户执行,具体方式如下:
$ORACLE_HOME/bin/wrap iname=${input_source.sql} oname=${output_target.sql} keep_comments=yes

说明:wrap 工具在对源文件加密后悔默认会剔除注释,keep_comments=yes 将会保留注释;

2)调用 dbms_ddl.create_wrapped 函数

该方式适合使用动态的方式创建的对象进行加密,具体如下:

declare
  sql_text varchar2(30000);

begin

  sql_text := q'[create or replace  object_name]';

  sys.dbms_ddl.create_wrapped(sql_text);

end;

说明:该方式进行的对象源码加密,是先对对象的源码加密,然后执行了加密后的对象sql脚本;

========================================== over ==========================================

你可能感兴趣的:(数据库,oracle,sql加密)