PG_DEFAULT_ACL
PG_DEFAULT_ACL系统表存储为新建对象设置的初始权限。
名称 |
类型 |
描述 |
---|---|---|
defaclrole |
oid |
与此权限相关的角色ID。 |
defaclnamespace |
oid |
与此权限相关的命名空间,如果没有,则为0。 |
defaclobjtype |
"char" |
此权限的对象类型。
|
defaclacl |
aclitem[] |
创建该类型时所拥有的访问权限。 |
应用示例
查看新建用户role1的初始权限:
1 2 3 4 |
select * from PG_DEFAULT_ACL; defaclrole | defaclnamespace | defaclobjtype | defaclacl ------------+-----------------+---------------+----------------- 16820 | 16822 | r | {role1=r/user1} |
也可使用如下语句进行转换后更直观的查看:
1
|
SELECT pg_catalog.pg_get_userbyid(d.defaclrole) AS "Granter", n.nspname AS "Schema", CASE d.defaclobjtype WHEN 'r' THEN 'table' WHEN 'S' THEN 'sequence' WHEN 'f' THEN 'function' WHEN 'T' THEN 'type' END AS "Type", pg_catalog.array_to_string(d.defaclacl, E', ') AS "Access privileges" FROM pg_catalog.pg_default_acl d LEFT JOIN pg_catalog.pg_namespace n ON n.oid = d.defaclnamespace ORDER BY 1, 2, 3; |
输出结果如下,表示通过用户user1授予用户role1对模式“user1”有读的权限。
1 2 3 4 |
Granter | Schema | Type | Access privileges ---------+--------+-------+------------------- user1 | user1 | table | role1=r/user1 (1 row) |