has_foreign_data_wrapper_privilege()

一个系统函数,用于确定用户是否对外部数据包装器拥有权限

has_foreign_data_wrapper_privilege() 是一个系统函数,用于确定用户是否对指定的 外部数据包装器 (FDW) 拥有指定的 权限

has_foreign_data_wrapper_privilege() 函数在 PostgreSQL 8.4 中被添加。

用法

has_foreign_data_wrapper_privilege() 有两种形式:

  • has_foreign_data_wrapper_privilege(fdw TEXT 或 OID, privilege TEXT)
  • has_foreign_data_wrapper_privilege(user TEXT 或 OID, fdw TEXT 或 OID, privilege TEXT)

可以通过 has_foreign_data_wrapper_privilege() 查询的唯一权限是:USAGE

变更历史

示例

以下示例假设已安装了如下的 FDW

postgres=# \dew
                      List of foreign-data wrappers
     Name     |  Owner   |       Handler        |       Validator        
--------------+----------+----------------------+------------------------
 postgres_fdw | postgres | postgres_fdw_handler | postgres_fdw_validator
(1 row)

确定当前用户是否对指定的 FDW 拥有 USAGE 权限。

postgres=# SELECT has_foreign_data_wrapper_privilege('postgres_fdw', 'USAGE');
 has_foreign_data_wrapper_privilege 
------------------------------------
 t
(1 row)

确定指定用户是否对指定的 FDW 拥有 USAGE 权限。

postgres=# SELECT has_foreign_data_wrapper_privilege('someuser', 'postgres_fdw', 'USAGE');
 has_foreign_data_wrapper_privilege 
------------------------------------
 f
(1 row)

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

postgres=# SELECT has_foreign_data_wrapper_privilege('postgres_fdw', 'DELETE');
ERROR:  unrecognized privilege type: "DELETE"

尝试确定一个不存在的 FDW 的权限。

postgres=# SELECT has_foreign_data_wrapper_privilege('hollerith_tabulator_fdw', 'USAGE');
ERROR:  foreign-data wrapper "hollerith_tabulator_fdw" does not exist

分类

外部数据包装器 (FDW), 系统函数, 用户和角色

另请参阅

has_server_privilege()

反馈

请在此处提交对 "has_foreign_data_wrapper_privilege()" 的任何评论、建议或更正: 此处