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

简介: PolarDB for PostgreSQL 开源必读手册

接上篇:https://developer.aliyun.com/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://developer.aliyun.com/article/1223094?groupCode=polardbforpg

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
关系型数据库 Linux 分布式数据库
rpm安装polarDB-PG的实践
安装PolarDB for PostgreSQL的实践,需要帮助到有同样需要的小伙伴
1144 3
|
分布式计算 Spark 大数据
Apache Spark中国技术交流社区历次直播回顾(持续更新)
Apache Spark中国技术交流社区,由阿里巴巴开源大数据技术团队成立,持续输出spark相关技术直播、原创文章、精品翻译,钉钉群内千人交流学习,欢迎加入。钉钉入群链接 https://qr.dingtalk.com/action/joingroup?code=v1,k1,jmHATP9Tk+okK7QZ5sw2oWSNLhkt2lCRvfHRdW7XhUQ=&_dt_no_comment=1&origin=11 更多视频和ppt资料请入群获得。
Apache Spark中国技术交流社区历次直播回顾(持续更新)
|
关系型数据库 MySQL 数据库
MyEMS开源系统安装之数据库
本文详细讲解MyEMS的安装步骤,重点介绍数据库架构与脚本部署。MyEMS支持MySQL 8.0、MariaDB 10.5及SingleStore 7.0等数据库服务器。通过命令行或客户端工具执行SQL脚本完成安装,包括多个数据库(如myems_billing_db、myems_energy_db等)。此外,提供解决常见问题的方法,如“用户拒绝访问”、“COLLATE设置”和“MAX_ALLOWED_PACKET错误”。注意,不建议在生产环境中将数据库安装于Docker容器内。
388 1
|
关系型数据库 分布式数据库 数据库
|
7月前
|
搜索推荐 算法 数据可视化
《游戏公会系统激活活跃度与筑牢归属感的实战指南》
本文基于亿级玩家行为轨迹的深度拆解,聚焦公会系统在维系玩家活跃度与归属感中的核心赋能逻辑,从行为激励体系搭建、情感链路设计、协作阈值优化、自驱循环机制构建、数字身份锚定等维度,结合多类型游戏的实践案例与数据对比,揭示公会从“玩家聚合工具”升级为“游戏生态共生体”的底层路径。文章摒弃表层功能描述,深挖玩家行为心理与技术落地策略,提出“低门槛高频触发+高价值低频沉淀”等创新设计理念,为游戏社群架构设计提供兼具实用性与前瞻性的实践指南,助力破解玩家流失困局,延长游戏生命周期。
536 11
|
存储 关系型数据库 分布式数据库
PolarDB 安装与配置 | 学习笔记
快速学习 PolarDB 安装与配置
PolarDB 安装与配置 | 学习笔记
|
存储 算法 数据挖掘
数据挖掘2.4——关联规则挖掘 知识点整理
数据挖掘2.4——关联规则挖掘 知识点整理
882 0
|
人工智能 异构计算 Python
Stable Diffusion云端部署只需三步, 不吃电脑配置, 模型快速部署
Stable diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。具体来说,得益于Stability AI的计算资源支持和LAION的数据资源支持,Stable Diffusion在LAION-5B的一个子集上训练了一个Latent Diffusion Models,该模型专门用于文图生成。
12418 3
|
10月前
|
XML 前端开发 决策智能
多智能体自主规划模式性能提升:五大精准策略详解
本文基于生产环境中的多智能体 React 模式实践,系统剖析了自主规划架构在工具调用延迟、上下文膨胀、中间态缺失、循环失控与监督缺位等方面的典型挑战。
1011 19

相关产品

  • 云原生数据库 PolarDB