Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用过程、触发器和批处理

从过程调用外部库

隐藏过程、函数、触发器和视图的内容


在某些情况下,当您分发应用程序和数据库时,可能不希望透露过程、函数、触发器和视图中包含的逻辑。作为附加的安全手段,您可以使用 ALTER PROCEDURE、ALTER FUNCTION、ALTER TRIGGER 和 ALTER VIEW 语句的 SET HIDDEN 子句来隐藏这些对象的内容。

SET HIDDEN 子句可打乱所关联对象的内容,使这些内容变得不可读,而您仍然可以使用这些对象。您还可以卸载对象并将对象重装入其他数据库。

修改是不可逆的,对于使用 8.0 或更高版本创建的数据库,将会删除对象的原始文本。因此需要在数据库外保留对象的原始内容。

用存储过程调试程序进行调试将不会显示过程定义,对过程进行分析也不会显示源。

在已经隐藏的对象上运行上面任何一个语句不会产生任何结果。

要隐藏特定类型的所有对象的文本,您可以使用类似于下面的循环:

begin
    for hide_lp as hide_cr cursor for
        select proc_name,user_name
        from SYS.SYSPROCEDURE p, SYS.SYSUSERPERM u
        where p.creator = u.user_id
        and p.creator not in (0,1,3)
    do
        message 'altering ' || proc_name;
        execute immediate 'alter procedure "' ||
            user_name || '"."' || proc_name
            || '" set hidden'
    end for
end

有关详细信息,请参见 ALTER FUNCTION 语句ALTER PROCEDURE 语句ALTER TRIGGER 语句ALTER VIEW 语句


Collection Contents 上一页 下一页 PDF