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) Time: 2.724 ms 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 函数
另请参阅
aclexplode(),acldefault()