has_largeobject_privilege()

一个判断用户是否具有大对象权限的函数

has_largeobject_privilege() 是一个系统函数,用于判断用户是否对指定 大对象 具有指定的 权限

has_largeobject_privilege()PostgreSQL 18 中被添加。

用法

has_largeobject_privilege ( largeobject oid, privilege text ) → boolean
has_largeobject_privilege ( user name or oid, largeobject oid, privilege text ) → boolean

可以查询以下权限

  • SELECT
  • UPDATE

如果指定的大对象不存在,则返回 NULL

变更历史

示例

的基本用法示例

postgres=# SELECT lo_create(1001);
 lo_create 
-----------
      1001
(1 row)

postgres=# GRANT SELECT ON LARGE OBJECT 1001 TO foo;
GRANT

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

postgres=# SELECT has_largeobject_privilege('foo', 1001, 'UPDATE');
 has_largeobject_privilege 
---------------------------
 f
(1 row)

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

postgres=# SELECT has_largeobject_privilege(1001, 'CONNECT');
ERROR:  unrecognized privilege type: "CONNECT"

尝试确定一个不存在的大对象的权限

postgres=# SELECT COUNT(*) FROM pg_largeobject WHERE loid = 999;
 count 
-------
     0
(1 row)

postgres=# SELECT has_largeobject_privilege(999, 'UPDATE') IS NULL;
 ?column? 
----------
 t
(1 row)

分类

大对象, 系统函数, 用户和角色

另请参阅

lo_compat_privileges

反馈

请将关于“has_largeobject_privilege()”的任何评论、建议或更正提交 此处