EXECUTE FUNCTION権限を、制約関数を除くデータベース内の関数または関数マッピングに対して付与する場合は、EXECUTE FUNCTIONを指定する必要があります。
EXECUTE FUNCTION権限は、行レベル セキュリティによって保護されたテーブルを問合わせる必要のあるユーザーに対する制約関数に付与する必要はありません。
例: EXECUTE FUNCTION権限の付与
例えば、次のGRANT文は、SYSLIB内のすべての関数に対してEXECUTE権限を付与します。
GRANT EXECUTE FUNCTION ON SYSLIB TO user_xyz;
個々のUDFに対するEXECUTE FUNCTION権限を付与する場合、指定する必要があるのはEXECUTEだけです。例えば、次のGRANT文は、特定関数名salesを持つ関数のみに対するEXECUTE権限をuser_xyzに付与します。
GRANT EXECUTE ON SPECIFIC FUNCTION SYSLIB.sales TO user_xyz;
例: 関数マッピングに対するEXECUTE FUNCTION権限の付与
EXECUTE FUNCTION権限を付与する前に、指定した関数マッピングが存在している必要があります。この文は、appl_view_dbデータベース内の補間関数マッピングに対するEXECUTE FUNCTION権限をuser1に付与します。
GRANT EXECUTE FUNCTION ON appl_view_db.Interpolator TO user1;
例: EXECUTE FUNCTIONおよび許可オブジェクト
ある特定のケースでは、EXECUTE FUNCTIONを付与するだけでは実際に関数を使用するのに不十分です。例えば、SCRIPTテーブル演算子は、ユーザーにEXECUTE FUNCTIONが付与されていれば有効になりますが、スクリプトを実行するためには、それにバインドされた許可オブジェクトが必要です。
例:
GRANT EXECUTE FUNCTION ON TD_SYSFNLIB.SCRIPT TO user_name;
GRANT EXECUTE ON authorization_name TO user_name;
GRANT EXECUTE FUNCTION ON TD_SYSFNLIB.SCRIPT TO role_name;
GRANT EXECUTE ON authorization_name TO role_name;
SYSUIF.DEFAULT_AUTHは、EXECUTE権限の許可オブジェクト ターゲットとして提供されます。