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 中某些框运算符的不正确支持,这可能导致不正确的结果
  • 修复查询取消的处理
  • 当 ALTER TABLE ... ALTER COLUMN TYPE 重建现有索引时,跳过表空间权限检查
  • 修复逻辑解码期间可能无效的初始快照
  • 修复未记录索引的 init 分叉可能损坏的问题
  • 对 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 的 EOL 警告

PostgreSQL 版本 9.2 将于 2017 年 9 月终止生命周期。该项目预计仅为该版本发布一个或两个更新。我们强烈建议用户尽快开始计划升级到更高版本的 PostgreSQL。有关更多信息,请参阅我们的版本策略。

更新

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

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

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

链接