<small id='d4moi'></small> <noframes id='j1rDHN'>

  • <tfoot id='hyvujzt'></tfoot>

      <legend id='p53qdTsBYF'><style id='bGHekuijaF'><dir id='jlayEzXm'><q id='sSD7Me4Jhb'></q></dir></style></legend>
      <i id='M5pc4sklHh'><tr id='4p1xuiQD'><dt id='zCEdU8KD'><q id='9vaPJgnk6'><span id='zwfGQbHyF'><b id='lWHV4'><form id='bfhZN5rI'><ins id='UzXJsVDjn'></ins><ul id='MAQs'></ul><sub id='GCgWwO8ud'></sub></form><legend id='A7LRQ'></legend><bdo id='uKV7fe'><pre id='k4yImz'><center id='T5oKj0wEX'></center></pre></bdo></b><th id='5XroUC'></th></span></q></dt></tr></i><div id='kiues'><tfoot id='Ae84aEZPM'></tfoot><dl id='eMAX6u'><fieldset id='RCaiFP4'></fieldset></dl></div>

          <bdo id='JimrY'></bdo><ul id='9S3TIQ2g'></ul>

          1. <li id='PHNJz'></li>
            登陆

            oracle 加密

            admin 2019-09-07 198人围观 ,发现0个评论

            Wrap办法oracle 加密加密

            Wrap的约束:

            1.此办法对加密相似暗码的东西,不是很安全。

            2.加密后的文件关于一般人来说,是比较安全的,可是关于专业人士来说,也是形同虚设的。

            3.不能加密触发器

            4.加密的进程中,是不会查看你的语法错误的,只是在编译的时分会查看

            5.他是向上兼容的,依赖于Oracle的版别,比如是8.1.5的加密文件,能够在8.1.6的版别上跑,可是

            8.1.6版别的Oracle加密文件,在8.1.5上不一定能跑。

            6.只能加密如下类型,不能加密匿名块

            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] oracle 加密TYPE type_name UNDER type_name
            CREATE [OR REPLACE] TYPE BODY type_name

            DBMS_DDL Subprograms办法加密

            DBMS_DDL包含了加密存储进程,函数,类型oracle 加密阐明,类型体,包阐明,包体,此子程序供给了动态生成PLSQL单元的才能。其实内部便是一个WRAP函数和thick一个CREATE_WRAPPED存储进程。再加上一个反常处理的单元MALFORMED_WRAP_INPUT。

            当然调用DBMS_DDL.CREATE_WRAPPED的时分有必要确保你的本地没有生命这样的存储进程,或许你在调用的时分要加上SYS.DBMS_DDL.WRAP or SYS.DBMS_DDL.CREATE_WRAPPED,这个时分就得有履行这两个存储进程的权限了。

            DECLARE
            package_text VARCHAR2(32767); -- text for creating package spec & body
            FUNCTION generate_spec (pkgname VARCHAR2) RETURN VARCHAR2 AS
            BEGIN
            RETURN 'CREATE PACKAGE ' || pkgname || ' AS
            PROCEDURE raise_salary (emp_id NUMBER, amount NUMBER);
            PROCEDURE fire_employee (emp_id NUMBER);
            END ' || pkgname |oracle 加密| ';';
            END genoracle 加密erate_spec;
            FUNCTION generate_body (pkgname VARCHAR2) RETURN VARCHAR2 AS
            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;
            /

            DBMS_DDL Subprograms约束:

            值得注意的是当你调用DBMS_SQL.PARSE这个函数去解析DBMS_DDL.WRAP这个加密的成果的时分,传入的文本超多了32767 bytes,你就有必要设置LFFLG为FALSE,不然DBMS_SQL.PARSE这个解析的成果将是紊乱的

            咱们如果有更多想学习的材料,咱们这里有Java,大数据,架构和人工智能的视频材料,能够私信我学习收取哦。

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP