has_function_privilege()

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

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

has_function_privilege()PostgreSQL 7.3 中添加。

用法

has_function_privilege() 具有两种形式

  • has_function_privilege(function TEXT OID, privilege TEXT)
  • has_function_privilege(user TEXT OID, function TEXT OID, privilege 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()" 的评论、建议或更正 此处