has_server_privilege()
是一个系统函数,用于确定用户是否对指定的外部服务器拥有指定的权限。
has_server_privilege()
添加于PostgreSQL 8.4。
用法
has_server_privilege(server
text
oroid
,privilege
text
)
has_server_privilege(user
text
oroid
,server
text
oroid
,privilege
text
)
唯一可以使用 has_server_privilege()
查询的权限是:USAGE
。
更改历史
- PostgreSQL 8.4
- 添加 (提交 cae565e5)
示例
以下示例假设FDW 已按如下方式设置
postgres=# \des List of foreign servers Name | Owner | Foreign-data wrapper --------+----------+---------------------- pg_fdw | postgres | postgres_fdw (1 row)
确定当前用户是否对指定的外部服务器具有USAGE
权限
postgres=# SELECT has_server_privilege('pg_fdw', 'USAGE'); has_server_privilege ---------------------- t (1 row)
确定指定用户是否对指定的外部服务器具有USAGE
权限
postgres=# SELECT has_server_privilege('foo', 'pg_fdw', 'USAGE'); has_server_privilege ---------------------- f (1 row)
尝试确定此对象类型的未识别权限
postgres=# SELECT has_server_privilege('pg_fdw', 'UPDATE'); ERROR: unrecognized privilege type: "UPDATE"
尝试确定不存在的外部服务器的权限
postgres=# SELECT has_server_privilege('microfiche_archive_2nd_floor', 'USAGE'); ERROR: server "microfiche_archive_2nd_floor" does not exist
参考文献
- PostgreSQL文档: 访问权限查询函数