pg_get_acl()

返回数据库对象 ACL 的函数
此条目与 PostgreSQL 功能相关,该功能是 PostgreSQL 18 的一部分,预计将于 2025 年底发布。

pg_get_acl() 是一个系统函数,用于返回数据库对象的访问控制列表 (ACL)。

pg_get_acl()PostgreSQL 18 中添加。

用法

pg_get_acl ( classid oid, objid oid, objsubid integer ) → aclitem[]

如果对象没有子对象 ID,则提供 0。

如果未找到匹配的对象,则返回NULL

更改历史记录

示例

pg_get_acl() 的基本用法示例

postgres=# CREATE TABLE foo (id INT);
CREATE TABLE

postgres=# CREATE ROLE bar;
CREATE ROLE

postgres=# GRANT SELECT ON foo TO bar;
GRANT

postgres=# CREATE ROLE baz;
CREATE ROLE

postgres=# GRANT UPDATE ON foo TO baz;
GRANT

postgres=# SELECT unnest(pg_get_acl('pg_class'::regclass, 'foo'::regclass, 0));
           unnest           
----------------------------
 postgres=arwdDxtm/postgres
 bar=r/postgres
 baz=w/postgres
(3 rows)

如果未找到对象,则返回NULL

postgres=# SELECT pg_get_acl('pg_class'::regclass, 0, 0) IS NULL;
 ?column? 
----------
 t
(1 row)

分类

系统函数用户和角色

另请参阅

aclexplode()

反馈

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