暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL超级用户下放的权限

原创 多米爸比 2023-01-17
1408

PostgreSQL数据库具有Superuser属性的用户具有最高权限,高权限易出现一些误操作,各版本一直在降低对超级用户权限的依赖,本文介绍各版本对超级用户权限下放的细节。

9.6版本下放对后端进程取消或中止的操作

PostgreSQL 9.6开始提供预置角色对需要经常使用的功能进行权限访问,第一个预置角色是pg_signal_backend。它可以使用pg_cancel_backend或者pg_terminate_backend函数对后端进程发送信号,取消后端进程查询或者中止后端进程。

10版本下放监控相关的操作

PostgreSQL 10支持预置角色pg_monitor,它包含如下三个监控相关的权限。

  • pg_read_all_settings:可以读取所有的配置变量。
  • pg_read_all_stats:可以读取pg_stat_*视图信息,以及相关的扩展统计信息。
  • pg_stat_scan_tables:可以执行一些监控函数。

11版本下放COPY相关的操作

PostgreSQL 11对COPY操作的如下三个预置角色。

  • pg_read_server_files:控制COPY以及文件访问函数读文件的权限。
  • pg_write_server_files:控制COPY以及文件访问函数写文件的权限。
  • pg_execute_server_program:控制COPY执行程序的权限。

另外版本11支持pg_rewind工具依赖的文件读取函数下放,可通过grant将权限赋给普通用户。

14版本下放全局读写的操作

PostgreSQL 14支持数据库通用宿主及全局读写的权限。

  • pg_database_owner:提供数据库宿主的通用权限,常见于模板库的定制化工作。
  • pg_read_all_data:提供全局读取的访问权限,实例级全局只读用户。
  • pg_write_all_data:提供全局写入的访问权限,实例级全局insert、update及delete。

15版本下放checkpoint操作

PostgreSQL 15支持预置角色pg_checkpoint执行checkpoint操作。

16dev版本下放maintain操作

正在开发中的PostgreSQL 16支持预置角色pg_maintain执行一些维护操作。

  • vacuum:回收并重用存储空间,更新可见性映射以助于查询规划器快速识别实时行。
  • analyze:收集表相关的统计数据,以便确定最有效的执行计划。
  • reindex:重建数据库中的索引。
  • refresh materialized view:刷新物化视图。
  • cluster:对存量数据的一次性数据编排来提升查询效率。
  • lock table:对表执行显式锁定的操作。

保持联系

本人组建了一个粉丝群:PG乐知乐享交流群。欢迎关注文章的小伙伴随缘加入,进群请加微信并备注PG乐知乐享。

456.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论