makeaclitem() 是一个系统函数,用于构造具有指定属性的 aclitem。
makeaclitem() 在 PostgreSQL 7.4 中添加。
用法
makeaclitem (oid,oid,text,boolean) →aclitem
参数如下:
oid: 权限的被授予者oid: 权限的授予者text: 要授予的权限或权限列表(用逗号分隔)boolean: 该权限是否可由被授予者授予
makeaclitem() 最初是作为 information_schema 实现的一部分创建的,但在 PostgreSQL 9.0 中(提交 36f887c4)从其中移除,并被 aclexplode() 取代,PostgreSQL 本身不再使用它。
变更历史
- PostgreSQL 16
- 现在可以指定多个权限(提交 b762bbde)
- PostgreSQL 7.4
- 添加(提交 8a2922dc)
示例
makeaclitem() 的基本用法示例
postgres=# SELECT makeaclitem('foo'::regrole, 'postgres'::regrole, 'SELECT', false);
makeaclitem
----------------
foo=r/postgres
(1 row)
postgres=# SELECT makeaclitem('foo'::regrole, 'postgres'::regrole, 'SELECT', true);
makeaclitem
-----------------
foo=r*/postgres
(1 row)
指定多个权限
postgres=# SELECT makeaclitem('foo'::regrole, 'postgres'::regrole, 'SELECT,UPDATE, DELETE', false);
makeaclitem
------------------
foo=rwd/postgres
(1 row)
尝试指定无效权限
postgres=# SELECT makeaclitem('foo'::regrole, 'postgres'::regrole, 'DISMANTLE', true);
ERROR: unrecognized privilege type: "DISMANTLE"
参考资料
- PostgreSQL 文档: aclitem 函数
