has_tablespace_privilege()

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

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

has_tablespace_privilege()PostgreSQL 8.0 中添加。

用法

has_tablespace_privilege() 具有两种形式

  • has_tablespace_privilege(tablespace TEXT OID, privilege TEXT)
  • has_tablespace_privilege(user TEXT OID, tablespace TEXT OID, privilege TEXT)

唯一可以使用 has_tablespace_privilege() 查询的权限是:CREATE

变更历史

示例

确定当前用户是否对指定的表空间拥有 CREATE 权限

postgres=# SELECT has_tablespace_privilege('tblspc_1', 'CREATE');
 has_tablespace_privilege 
--------------------------
 t
(1 row)

确定指定用户是否对指定的表空间拥有 CREATE 权限

postgres=# SELECT has_tablespace_privilege('foo', 'tblspc_2', 'CREATE');
 has_tablespace_privilege 
--------------------------
 f
(1 row)

除了 CREATE 之外的其他权限不被识别

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

尝试确定不存在的表空间的权限

postgres=# SELECT has_tablespace_privilege('tblspc_foo', 'CREATE');
ERROR:  tablespace "tblspc_foo" does not exist

分类

系统函数表空间

参见

表空间

反馈

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