has_function_privilege()

一个确定用户是否拥有函数权限的系统函数

has_function_privilege() 是一个系统函数,用于确定用户是否对指定的函数拥有指定的权限

has_function_privilege() 添加于PostgreSQL 7.3

用法

has_function_privilege() 具有两种形式

  • has_function_privilege(函数 TEXT OID, 权限 TEXT)
  • has_function_privilege(用户 TEXT OID, 函数 TEXT OID, 权限 TEXT)

可以使用 has_function_privilege() 查询的唯一权限是:EXECUTE

变更历史

示例

确定当前用户是否对指定的函数拥有 EXECUTE 权限

postgres=# SELECT has_function_privilege('pg_is_in_recovery()', 'EXECUTE');
 has_function_privilege 
------------------------
 t
(1 row)

函数必须指定为 function(...),否则将引发错误

postgres=# SELECT has_function_privilege('pg_is_in_recovery', 'EXECUTE');
ERROR:  expected a left parenthesis

确定指定用户是否对指定的函数拥有 EXECUTE 权限

postgres=# SELECT has_function_privilege('someuser', 'pg_read_file(text)', 'EXECUTE');
 has_function_privilege 
------------------------
 f
(1 row)

尝试确定此对象类型的不被识别的权限

postgres=# SELECT has_function_privilege('pg_is_in_recovery()', 'CREATE');
ERROR:  unrecognized privilege type: "CREATE"

尝试确定不存在的函数的权限

postgres=# SELECT has_function_privilege('somefunction()', 'EXECUTE');
ERROR:  function "somefunction()" does not exist

分类

函数和过程系统函数用户和角色

反馈

提交关于 "has_function_privilege()" 的任何评论、建议或更正 在此处