この文を使用して、関数を修正します。新しい関数全体を ALTER FUNCTION 文にインクルードします。
ALTER FUNCTION [ owner.]function-name function-definition
function-definition : CREATE FUNCTION 構文
ALTER FUNCTION [ owner.]function-name SET HIDDEN
ALTER FUNCTION [ owner.]function-name RECOMPILE
構文 1 ALTER FUNCTION 文の構文は、最初の 1 語を除き、CREATE FUNCTION 文の構文とまったく同じです。CREATE FUNCTION 文のどちらのバージョンも変更できます。
関数に対する既存のパーミッションはそのまま維持されます。このため、パーミッションの再割り当ては必要ありません。DROP FUNCTION と CREATE FUNCTION を実行した場合は、EXECUTE パーミッションを再び割り当ててください。
構文 2 SET HIDDEN を使用して、関連する関数定義を難読化し、解読できないようにします。この関数はアンロードして、他のデータベースに再ロードできます。
この設定は、元に戻せません。元のソースが再び必要な場合は、データベース外で保存してください。
SET HIDDEN を使用すると、デバッガを使用したデバッグでも、プロシージャ・プロファイリングによっても、関数定義は表示されません。
構文 3 RECOMPILE 構文を使用して、ユーザ定義 SQL 関数を再コンパイルします。関数を再コンパイルすると、カタログに格納された定義が再解析され、構文が検証されます。保持されている関数のソースは、再コンパイルしても変わりません。関数を再コンパイルすると、SET HIDDEN 句で難読化された定義は、難読化された状態が維持され、解読できません。
関数の所有者であるか、DBA 権限が必要です。
オートコミット。
SQL/2003 ベンダ拡張。
この例では、MyFunction が作成され、変更されます。SET HIDDEN 句は、関数を難読化し、解読できないようにします。
CREATE FUNCTION MyFunction( firstname CHAR(30), lastname CHAR(30) ) RETURNS CHAR(61) BEGIN DECLARE name CHAR(61); SET name = firstname || ' ' || lastname; RETURN (name); ALTER FUNCTION MyFunction SET HIDDEN; END; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |