WRAP 函数 - 模糊化 DDL 语句
WRAP 函数将可读的 DDL 语句变换为模糊化 DDL 语句。
语法
在模糊化 DDL 语句中,过程逻辑和嵌入式 SQL 语句按如下方式进行加密:无法轻松抽取逻辑中的知识产权。如果 DDL 语句对应于外部例程定义,那么将对参数列表后面的部分进行编码。
参数
- object-definition-string
- 包含 DDL 语句文本的 CLOB(2M) 类型的字符串,可以为下列一项内容 (SQLSTATE 5UA0O):
- create procedure
- create function
- create package (PL/SQL)
- create package body (PL/SQL)
- create trigger
- create view
- alter module add function
- alter module publish function
- alter module add procedure
- alter module publish procedure
注: 语句的编码意味着模糊化内容,并且不应被视为强加密形式。
权限
对 DBMS_DDL 模块的 EXECUTE 特权
示例
- 生成根据每小时工资来计算年薪(规定每周 40 小时)的函数的模糊化版本
VALUES(DBMS_DDL.WRAP('CREATE FUNCTION ' || 'salary(wage DECFLOAT) ' || 'RETURNS DECFLOAT ' || 'RETURN wage * 40 * 52')) The result of the previous statement would be something of the form: CREATE FUNCTION salary(wage DECFLOAT) WRAPPED SQL09072 obfuscated-text - 生成一个用于设置复杂缺省值的触发器的模糊化格式
VALUES(DBMS_DDL.WRAP('CREATE OR REPLACE TRIGGER ' || 'trg1 BEFORE INSERT ON emp ' || 'REFERENCING NEW AS n ' || 'FOR EACH ROW ' || 'WHEN (n.bonus IS NULL) ' || 'SET n.bonus = n.salary * .04')) The result of the previous statement would be something of the form: CREATE OR REPLACE TRIGGER trg1 WRAPPED SQL09072 obfuscated-text
