has_sequence_privilege()

确定用户是否对序列具有权限的系统函数

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

has_sequence_privilege()PostgreSQL 9.0 中添加。

用法

has_sequence_privilege() 具有两种形式

  • has_sequence_privilege(序列 TEXT OID, 权限 TEXT)
  • has_tablespace_privilege(用户 TEXT OID, 序列 TEXT OID, 权限 TEXT)

可以查询以下权限

  • USAGE
  • SELECT
  • UPDATE

变更历史

示例

确定当前用户是否对指定的序列具有 USAGE 权限

postgres=# SELECT has_sequence_privilege('foo_id_seq', 'USAGE');
 has_sequence_privilege 
------------------------
 t
(1 row)

确定指定用户是否对指定的序列具有 SELECT 权限

postgres=# SELECT has_sequence_privilege('someuser', 'foo_id_seq', 'SELECT');
 has_sequence_privilege 
------------------------
 f
(1 row)

查询多个权限

postgres=# SELECT has_sequence_privilege('someuser', 'foo_id_seq', 'SELECT, UPDATE');
 has_sequence_privilege 
------------------------
 f
(1 row)

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

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

尝试确定不存在的序列的权限

postgres=# SELECT has_sequence_privilege('bar_id_seq', 'USAGE');
ERROR:  relation "bar_id_seq" does not exist

分类

序列系统函数用户和角色

反馈

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