博客
关于我
PostgreSQL 14 新增default role——pg_database_owner
阅读量:605 次
发布时间:2019-03-13

本文共 869 字,大约阅读时间需要 2 分钟。

PostgreSQL 14中新增了pg_database_owner角色,这个角色表示数据库的拥有者。这个角色有一个显著的特点:它无法被赋予,也无法显示赋予。因此,这个角色必须直接附加到数据库的所有者身上,这样每个新创建的数据库所有者都会继承这些权限。

在PostgreSQL 14中,系统内部定义了11种特殊角色,包括pg_database_owner以及其他与数据库管理相关的角色。这些角色中的每一个都有特定的权限,例如管理数据库、查看统计信息、监控后台进程等。这些角色通常用于内部管理,但也有时机可以用于特定权限的管理。

举个例子,假设你执行以下命令:

bill@bill> SELECT pg_has_role('bill', 'pg_database_owner', 'USAGE') as priv,billing: pg_has_role('bill', 'pg_database_owner', 'MEMBER') as mem,billing: pg_has_role('bill', 'pg_database_owner', 'MEMBER WITH ADMIN OPTION') as admin;

将返回结果是:

priv | mem | admin-----+-----+---------t   | t   | t(1 row)

这意味着用户bill同时拥有使用权限、成员权限以及管理员权限。这些权限是预定义的,默认附加给所有数据库拥有者,而无需通过更改角色成员的方式来赋予。这种设计目的是为了确保Database Owner的权利不会被意外地丢失或被修改。

值得注意的是,虽然pg_database_owner角色是默认存在的,但它并不支持通过GRANT或类似的命令进行赋予。这意味着,你无法通过普通的SQL语句将这个角色赋予给其他用户。这也是为什么当数据库被创建时,Database Owner的权限会自动继承这些预定义角色。

如果你对这段内容感兴趣,可以参考PostgreSQL官方文档获取更详细的信息。

转载地址:http://jtcaz.baihongyu.com/

你可能感兴趣的文章
无法初始化Winsock2.2处理
查看>>
Horizon Cloud之UAG访问异常
查看>>
vMotion 操作失败进度卡在14% ,报错: Operation Timed out
查看>>
重置UAG Application admin密码
查看>>
Horizon Daas租户管理平台扩展分配时报:内部错误
查看>>
项目计划甘特图绘制说明
查看>>
C/C++:线性表之顺序表
查看>>
嵌入式系统试题库(CSU)
查看>>
图神经网络7日打卡营学习心得
查看>>
electronJS 开发linux App
查看>>
MbedOS 设备中的模数转换(ADC)
查看>>
【vue】setInterval的嵌套实例
查看>>
【SpringBoot】如何配置热部署
查看>>
【rabbitMQ】04 如何实现高可用?
查看>>
Method breakpoints may dramatically slow down debugging
查看>>
【自考】之信息资源管理(一)
查看>>
C# 文本框限制大全
查看>>
setup facatory9.0打包详细教程(含静默安装和卸载)
查看>>
ionic4 路由跳转传值
查看>>
CSDN 怎么写出好看的博客
查看>>