2025年9月25日: PostgreSQL 18 发布!

2017-05-11 安全更新发布

发布于 2017-05-11,作者 PostgreSQL 全球开发组

PostgreSQL 全球开发组发布了对其所有受支持版本数据库系统的更新,包括 9.6.3、9.5.7、9.4.12、9.3.17 和 9.2.21。本次发布修复了三个安全问题。此外,还修补了过去三个月报告的若干其他错误。使用 PGREQUIRESSL 环境变量控制连接的用户,以及在使用外部服务器时依赖数据库用户之间安全隔离的用户,应尽快更新。其他用户应计划在下次方便的停机时间进行更新。

安全问题

本次发布解决了三个安全漏洞

CVE-2017-7486 的修复适用于新数据库,请参阅发行说明以了解将修复应用于现有数据库的步骤。

鼓励任何依赖 PGREQUIRESSL 环境变量的用户使用 sslmode 连接字符串选项,因为 PGREQUIRESSL 的使用已被弃用。CVE-2017-7485 不影响 9.2 系列。有关这些问题及其对向后兼容性的影响的更多信息,请参阅发行说明。

错误修复和改进

本次更新还修复了过去几个月报告的若干错误。其中一些问题仅影响 9.6 系列,但许多问题影响所有受支持的版本。本次发布包含 90 多个修复,包括:

  • 修复以确保 RLS 策略行为一致
  • 修复 ALTER TABLE ... VALIDATE CONSTRAINT 在约束标记为 NO INHERIT 时不递归到子表
  • 修复 SP-GiST 中对某些 box 操作符的支持不正确,可能导致错误的结果
  • 修复处理查询取消
  • 在 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时跳过表空间权限检查
  • 修复逻辑解码期间可能出现的无效初始快照
  • 修复未记录索引的 init fork 可能损坏
  • 对 postmaster 的几项修复,包括运行为 Windows 服务时的检查
  • 对查询规划器的几项修复,包括并行查询规划中的其他各种小修复
  • 避免 walsender 和某些基于 GiST 索引的索引扫描中可能出现的崩溃
  • 修复在尝试停止非独占备份时取消 pg_stop_backup()
  • ecpg 更新以支持 COMMIT PREPARED 和 ROLLBACK PREPARED
  • 对 pg_dump/pg_restore 的几项修复,包括处理过程语言的权限以及使用 --clean 选项时的处理
  • 对 contrib 模块的几项修复,例如 dblink、pg_trgm 和 postgres_fdw
  • 对 MSVC 编译器的修复,例如使用正确的夏令时规则用于 POSIX 风格的时区名称并支持 Tcl 8.6
  • 多项性能改进
  • 修复 cursor_to_xml() 在 tableforest = false 时生成有效输出
  • 修复 float8_timestamptz() 和 make_interval() 中的舍入问题
  • 修复 pgbench 以正确处理 --connect 和 --rate 选项的组合
  • 对命令行工具的修复,如 pg_upgrade 和 pg_basebackup
  • 对 VACUUM 和 CLUSTER 的几项修复

基于逻辑解码的复制工具用户,以及未记录索引的用户,应参考发行说明了解升级期间可能需要的额外步骤。

本次更新还包含 tzdata 2017b 版本,更新了智利、海地和蒙古的 DST 法规变更,并对厄瓜多尔、哈萨克斯坦、利比里亚和西班牙进行了历史性更正。为南美洲、太平洋和印度洋的许多时区以及一些亚洲和中东国家的时区切换到数字缩写。时区库已与 IANA 发布 tzcode2017b 同步。

9.2 版本终止支持警告

PostgreSQL 9.2 版本将于 2017 年 9 月达到生命周期终点 (End-of-Life)。项目预计仅为该版本发布一到两次更新。我们敦促用户尽快开始规划升级到更高版本的 PostgreSQL。有关更多信息,请参阅我们的版本策略。

更新

所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户在应用此更新版本时无需转储和重新加载数据库或使用 pg_upgrade;您只需关闭 PostgreSQL 并更新其二进制文件即可。

更新后,基于逻辑解码的复制工具用户,以及未记录索引的用户,应参考发行说明了解升级期间可能需要的额外步骤。有关更多详细信息,请参阅发行说明。

跳过了一个或多个更新版本的用户可能需要执行额外的、更新后的步骤;有关详细信息,请参阅早期版本的发布说明。

链接