加密PL/SQL源代码
来源:互联网 发布:网络监控 距离 编辑:程序博客网 时间:2024/06/05 07:37
WRAP语法
wrap iname=input_file [oname=output_file ]
可省略文件扩展名,如以下的命令是等同的:
wrap iname=/mydir/myfile
wrap iname=/mydir/myfile.sql
输出文件默认的扩展名为.plb,当然你也可以指定不同的文件名和扩展名。
wrap iname=/mydir/myfile oname=/yourdir/yourfile.out
wrap主要是混淆PL/SQL语句的主体部分,如下CREATE语句可以被加密:
CREATE [OR REPLACE] FUNCTION function_name
CREATE [OR REPLACE] PROCEDURE procedure_name
CREATE [OR REPLACE] PACKAGE package_name
CREATE [OR REPLACE] PACKAGE BODY package_name
CREATE [OR REPLACE] TYPE type_name AS OBJECT
CREATE [OR REPLACE] TYPE type_name UNDER type_name
CREATE [OR REPLACE] TYPE BODY type_name
CREATE [OR REPLACE]TRIGGER语句不能被加密,但你可调用加密的过程。加密文件中除了语句头部和C风格()注释外,其它所有注释被删除。
输出的文件为文本文件,可以在SQL*Plus执行:
SQL> @myfile.plb;
DBMS_DDL子程序
DMBS_DDL包包含WRAP函数和CREATE_WRAPPED过程。CREATE_WRAPPED过程加密语句并创建PL/SQL单元。如下为使用DBMS_DDL.CREATE_WRAPPED加密包的例子:
DECLARE
package_text VARCHAR2(32767); — text for creating package spec& body
FUNCTION generate_spec (pkgname VARCHAR2) RETURN VARCHAR2AS
BEGIN
RETURN ‘CREATE PACKAGE ‘ || pkgname || ‘ AS
PROCEDURE raise_salary (emp_id NUMBER, amount NUMBER);
PROCEDURE fire_employee (emp_id NUMBER);
END ‘ || pkgname || ‘;’;
END generate_spec;
FUNCTION generate_body (pkgname VARCHAR2) RETURN VARCHAR2AS
BEGIN
RETURN ‘CREATE PACKAGE BODY ‘ || pkgname || ‘ AS
PROCEDURE raise_salary (emp_id NUMBER, amount NUMBER) IS
BEGIN
UPDATE employees
SET salary = salary + amount WHERE employee_id = emp_id;
END raise_salary;
PROCEDURE fire_employee (emp_id NUMBER) IS
BEGIN
DELETE FROM employees WHERE employee_id = emp_id;
END fire_employee;
END ‘ || pkgname || ‘;’;
END generate_body;
BEGIN
— Generate package spec
package_text := generate_spec(‘emp_actions’)
— Create wrapped package spec
DBMS_DDL.CREATE_WRAPPED(package_text);
— Generate package body
package_text := generate_body(‘emp_actions’);
— Create wrapped package body
DBMS_DDL.CREATE_WRAPPED(package_text);
END;
原文出处:http://oracle.chinaitlab.com/PLSQL/817057.html
- 加密PL/SQL源代码
- PL/SQL加密
- PL/SQL版的MD5加密函数
- Oracle中加密PL/SQL代码
- Oracle中加密PL/SQL代码
- 【SQL Server CE2.0】创建加密的数据库(源代码)
- 【SQL Server CE2.0】打开加密的数据库(源代码)
- PL SQL
- pl/sql
- pl/sql
- PL/SQL
- pl/sql
- PL SQL
- PL/SQL
- PL/SQL
- pl/sql
- PL SQL
- PL/SQL
- 3. Longest Substring Without Repeating Characters
- 关于SQL_Trace
- Delete 和 Truncate的区别
- DB_FLASHBACK_RETENTION_TARGET参…
- High Water Mark
- 加密PL/SQL源代码
- 常用网址
- 理解oracle rac cache fusion(有图…
- db_recovery_file_dest_size of 21…
- Oracle常用命令
- 如何生成执行计划 未完
- 数据结构 第三章 栈与队列
- SQL行转列题目
- 关于EBS DBA(转载)