UDF 安全性和权限
要创建 UDF,您必须具有使用 SQL 或 plpythonu (Python) 语言的权限。默认情况下,向 PUBLIC 授予 USAGE ON LANGUAGE SQL 权限,但是,您必须明确授予 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,您必须拥有每个函数的执行权限。预设情况下,向 PUBLIC 授予运行新 UDF 的权限。要限制使用,请从 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;
默认情况下,超级用户拥有全部权限。