has_any_column_privilege()

一个确定用户是否对表列具有权限的函数

has_any_column_privilege() 是一个系统函数,用于确定用户是否对表的一个或多个列具有权限

has_any_column_privilege() 函数于PostgreSQL 8.4 中引入。

用法

has_any_column_privilege ( [ user name or oid, ] table text or oid, privilege text ) → boolean

可以查询以下权限

  • SELECT
  • INSERT
  • UPDATE
  • REFERENCES

请注意,当提供表的OID作为参数时,如果找不到匹配的对象,该函数将返回NULL。如果以字符串形式提供表名,如果找不到匹配的对象,则会引发错误。

变更历史

示例

确定当前用户是否对指定表中的任何列具有SELECT权限

postgres=# SELECT has_any_column_privilege('foo', 'SELECT');
 has_any_column_privilege 
--------------------------
 t
(1 row)

确定指定用户是否对指定表中的任何列具有UPDATE权限

postgres=# SELECT has_any_column_privilege('someuser', 'foo', 'UPDATE');
 has_any_column_privilege 
--------------------------
 f
(1 row)

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

postgres=# SELECT has_any_column_privilege('foo', 'USAGE');
ERROR:  unrecognized privilege type: "USAGE"

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

postgres=# SELECT has_any_column_privilege('bar', 'REFERENCES');
ERROR:  relation "bar" does not exist

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

postgres=# SELECT has_any_column_privilege(9999, 'SELECT');
 has_any_column_privilege
--------------------------

(1 row)

分类

系统函数, 用户和角色

另请参阅

has_column_privilege()

反馈

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