場合によっては、プロシージャ、関数、トリガ、ビューに含まれるロジックを公開せずに、アプリケーションとデータベースを配布できます。追加のセキュリティ対策として、ALTER PROCEDURE 文、ALTER FUNCTION 文、ALTER TRIGGER 文、ALTER VIEW 文の SET HIDDEN 句を使用して、これらのオブジェクトの内容を隠すことができます。
SET HIDDEN 句は、関連オブジェクトを使用可能な状態に保ちながら、その内容を難読化して読み取れないようにします。また、アンロードして、別のデータベースに再ロードすることもできます。
修正を元に戻すことはできません。修正すると、オブジェクトの元のテキストが削除されます。オブジェクトの元のソースをデータベースの外部に保存しておく必要があります。
デバッガによるデバッグでは、プロシージャ定義が表示されず、プロシージャ・プロファイリングにもソースが表示されません。
すでに隠されているオブジェクトに対して、前述のいずれかの文を実行しても効果はありません。
特定の型のすべてのオブジェクトのテキストを隠すには、次のようなループを使用できます。
BEGIN FOR hide_lp as hide_cr cursor FOR SELECT proc_name, user_name FROM SYS.SYSPROCEDURE p, SYS.SYSUSER 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; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |