2018-08-09,PostgreSQL全球开发组发布所有提供维护的版本的补丁版本,包括10.5, 9.6.10, 9.5.14, 9.4.19, 9.3.24 版本。这些补丁版本修正了2个安全问题以及最近三个月用户反馈的Bug。
如果用户正在使用9.5或以后的版本并且设置了常规的用户访问方式,或者是安装了dblink或是postgres_fdw扩展,请尽快升级为最新的修正版本,其他用户可以在将来停机时进行升级。
请注意自10.0版本开始,PostgreSQL已改变了版本命名的规划,所以从任何10.X版本升级至10.5,只算是一个小的版本升级(即非主版本升级)。
PostgreSQL全球开发组同时也发布了PostgreSQL 11.0 的第三个Beta版本,同时提供下载。这个版本包含将来PostgreSQL 11正式版本中的所有特性和功能(当然一些功能的细节在正式版本发布时可能会有些变化),同时也修正了自第二个beta版本以来用户反馈的Bug。
2个安全漏洞已在这些版本中进行了修正:
libpq库作为PostgreSQL的客户连接API,也会被其他连接库使用。它有一个内部的问题,即当它进行重连时,没有对它的连接状态变量进行复位。在特定的情况下,这些状态变量决定了一个连接是否需要一个密码,比如对dblink或是postgres_fdw扩展来说,它们没有被复位后,重新登录服务器可能不成功。
用户可以通过在psql中运行以下指令来检查是否安装了上述扩展:
\dx dblink|postgres_fdw
建议用户尽快升级他们的libpq库文件。
PostgreSQL全球开发组感谢Andrew Krasichkov报告了这个问题。
一个可以使用CREATE TABLE权限的用户通过使用upsert指令(INSERT … ON CONFLICT DO UPDATE)可以读取服务器的内存内容。缺省情况下,用户会利用到这一点。对一个指定的表具有至少一列有INSERT和UPDATE权限的用户,可以通过视图或是upsert指令来更新其他列。
本次更新也修正了最近几个月收集的超过40个Bug。一些Bug只影响10.0版本,但大多数影响所有在支持的版本。
更新包括:
本次更新也包括2018e版本的时区数据,包括对北朝鲜时区的更新。2018e版本的时区数据重新引入了负的-DST,其最早在2018a版本也使用过,它影响爱尔兰(1971-)历史和现在的时间戳数据,也影响纳米比亚(1994-2017) 和前 捷克斯洛伐克 (1946-1947)的数据。如果你的应用程序保存有这些受影响的时区数据,用户需要测试应用以确保应用有如期望的那样结果。
PostgreSQL 11 Beta 3版本包括一些以前版本中的累积更新和超过20多个其自身版本的更新。有关对PostgreSQL 11 Beta 3版本的完整更新列表,请参阅PostgreSQL 11.0 版本待处理的问题 页面。
PostgreSQL 9.3 版本将在11月发布了下一个计划的更新版本后就会结束维护周期。我们建议仍使用此版本的用户开始规划尽快升级至新版本。可浏览 新版本命名策略 以了解更多信息。
所有PostgreSQL的补丁版本都是累积更新的。对小的版本更新,用户是不需要对数据库进行导出再导入,或是使用pg_upgrade工具来进行升级。用户只需要将PostgreSQL停止服务,然后将PostgreSQL自身的系统文件进行更新即可。
对跳过一个或是多个补丁版本更新的用户,可能需要进行一些额外的的操作或是文件更新后的步骤。请浏览 发布声明详稿 来了解对更早一些版本升级时的细节。
要从Beta1、Beta2版本或是更早的版本升级至PostgreSQL 11 Beta3版本,用户需要使用类似大版本间的升级策略(如使用pg_upgrade工具或是 pg_dump / pg_restore的数据导出导入方式)。更多信息请参考文档中有关 升级 的段落。
这是11.0版本的第三个Beta测试版本,PostgreSQL项目组还会根据测试情况发布更多测试版本,然后会发布一个或多个备选RC版本,准备在2018年底发布正式版本。更多信息请参考我们的Beta测试信息页面。
每一个PostgreSQL版本的稳定性都依赖于广大用户和社区使用自己的工作负载和测试工具来发现Bug及进行回归测试。我们非常感谢所有参与测试的用户,你们的工作让我们可以更快地接近正式版本的发布。用户的反馈和测试将帮助我们决定对新特性的最终优化,所以请继续进行测试。用户测试的质量将帮助我们决定何时可以发布最终版本。
在PostgreSQL的Wiki上有一个仍在处理中问题列表。用户也可以使用PostgreSQL网站上的如下表格上报Bug: https://www.postgresql.org/account/submitbug/