ST0407041
プロシージャ、関数、トリガ、ビューの内容を隠す
Tips!
場合によっては、プロシージャ、関数、トリガ、ビューに含まれる論理を公開せずに、アプリケーションとデータベースを配布できます。追加のセキュリティ対策として、ALTER PROCEDURE文、ALTER FUNCTION文、ALTER TRIGGER文、ALTER VIEW文のSET HIDDEN句を使用して、これらのオブジェクトの内容を隠すことができます。
SET HIDDEN句は、関連オブジェクトの内容にスクランブルをかけて読み取れないようにします。これらのオブジェクトは引き続き使用できます。また、アンロードして、別のデータベースに再ロードすることもできます。
修正を元に戻すことはできません。バージョン8.0以降をしようして作成したデータベースの場合は、オブジェクトの元のテキストが削除されます。オブジェクトの元のソースをデータベースの外部に保存しておく必要があります。
ストアド・プロシージャ・デバッガによるデバッグでは、プロシージャ定義が表示されず、プロシージャ・プロファイリングにもソースが表示されません。
すでに隠されているオブジェクトに対して、前述のいずれかの文を実行しても効果はありません。
特定の型のすべてのオブジェクトのテキストを隠すには、次のようなループを使用できます。
begin
for hide_lp as hide_cr cursof for
select proc_name, user_name
from SYS.SYSPROCEDURE p, SYS.SYSUSERP 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文を参照して下さい。
|