软件下载吧文章资讯

分类分类

PostgreSQL 默认权限查看方式

2024-02-24 17:17作者:下载吧

如何查看PostgreSQL默认权限

当我们对Postgresql的某个用户授予默认权限时, pg_default_acl表存储要被分配给新创建对象的初始权限。你可能通过查询该表获取默认权限,先了解下官方文档的解释:

表 50-17. pg_default_acl的列:

名称 类型 引用 描述
oid oid 行标识符(隐藏属性,必须被显式选择才会显示)
defaclrole oid pg_authid.oid 与此项相关的角色的OID
defaclnamespace oid pg_namespace.oid 与此项相关的名字空间的OID,如果没有则为0
defaclobjtype char 此项适合的对象类型: r = 关系(表、视图), S = 序列, f = 函数, T = 类型
defaclacl aclitem[] 此类对象在创建时应用有的访问权限

一个pg_default_acl项展示了要分配给属于一个指定用户的对象的初始权限。当前有两类项:defaclnamespace = 0的”全局”项和引用一个特殊模式的”每模式”项。如果一个全局项存在,则它重载该对象类型的普通hard-wired默认权限。一个每模式项如果存在,表示权限将被加入到全局或hard-wired默认权限中。

添加默认权限

演示数据库版本:PostgreSQL 9.6.8

这里我们测试给test用户添加“abc”模式的默认权限,先查看下当前schema的所有者:

// 查看当前schema的所有者,相当于du元命令
SELECT n.nspname AS “Name”,
pg_catalog.pg_get_userbyid(n.nspowner) AS “Owner”
FROM pg_catalog.pg_namespace n
WHERE n.nspname !~ ‘^pg_’ AND n.nspname <> ‘information_schema’
ORDER BY 1;

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消