UDF のセキュリティとアクセス許可
UDF を作成するには、SQL または plpythonu (Python) 用の言語で使用のアクセス権限を持っている必要があります。デフォルトでは、USAGE ON LANGUAGE SQL が PUBLIC に許可されますが、特定のユーザーまたはグループに明示的に USAGE ON LANGUAGE PLPYTHONU を許可する必要があります。
SQL の使用を取り消すには、最初に PUBLIC に対して使用を取り消します。次に、SQL UDF の作成を許可された特定のユーザーやグループにのみ、SQL の使用を許可します。次の例では、PUBLIC から SQL での使用を取り消します。次に、ユーザーグループ udf_devs
に使用を許可します。
revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;
UDF を実行するには、関数ごとに実行許可を持っている必要があります。デフォルトでは、新しい UDF を実行する許可が PUBLIC に付与されます。使用を制限するには、関数に対して PUBLIC からこの許可を取り消します。次に、特定の個人またはグループに権限を付与します。
次の例では、PUBLIC から関数 f_py_greater
での実行を取り消します。次に、ユーザーグループ udf_devs
に使用を許可します。
revoke execute on function f_py_greater(a float, b float) from PUBLIC; grant execute on function f_py_greater(a float, b float) to group udf_devs;
スーパーユーザーは、デフォルトですべての権限を持っています。
詳細については、「GRANT」と「REVOKE」を参照してください。