PostgreSQL 全球开发组已发布我们数据库系统所有受支持版本的更新,包括 10.5、9.6.10、9.5.14、9.4.19、9.3.24。此版本修复了两个安全问题以及过去三个月报告的错误。
如果您的系统有不受信任的用户访问,并且您正在运行 PostgreSQL 9.5 或更高版本,或者安装了 dblink 或 postgres_fdw 扩展,您必须尽快应用此更新。所有其他用户可以在下次方便的停机时间进行升级。
请注意,PostgreSQL 在版本 10.0 发布时更改了其版本控制方案,因此从任何 10.x 版本更新到版本 10.5 都被认为是小版本更新。
PostgreSQL 全球开发组还宣布,PostgreSQL 11 的第三个测试版现已可供下载。此版本包含 PostgreSQL 11 最终版本中将提供的所有功能的预览(尽管发布的一些细节可能会在此之前发生更改),以及在第二个测试版期间报告的错误修复。
此版本修复了两个安全漏洞
libpq(PostgreSQL 的客户端连接 API,也被其他连接库使用)存在一个内部问题,即在尝试重新连接时不会重置其所有连接状态变量。特别是,确定连接是否需要密码的状态变量不会被重置,这可能允许需要 libpq 的功能的用户(例如 dblink 或 postgres_fdw 扩展)登录到他们不应该访问的服务器。
您可以通过在 PostgreSQL shell 中运行以下命令来检查您的数据库是否安装了任何扩展
\dx dblink|postgres_fdw
建议用户尽快升级其 libpq 安装。
PostgreSQL 全球开发组感谢 Andrew Krasichkov 报告此问题。
INSERT ... ON CONFLICT DO UPDATE
中存在内存泄漏和缺少授权能够执行 CREATE TABLE 的攻击者可以使用 upsert (INSERT ... ON CONFLICT DO UPDATE
) 查询读取服务器内存的任意字节。默认情况下,任何用户都可以利用这一点。具有特定 INSERT 权限和给定表中至少一列 UPDATE 权限的用户还可以使用视图和 upsert 查询更新其他列。
此更新还修复了过去几个月中报告的 40 多个错误。其中一些问题仅影响版本 10,但许多问题影响所有受支持的版本。
这些修复包括
VACUUM
相关的多个修复,包括可能导致某些系统目录表数据损坏的问题variance
和类似的聚合函数返回准确结果SHOW ALL
以向允许读取所有设置的角色显示超级用户配置设置COPY FROM .. WITH HEADER
在处理完每 4,294,967,296 行后会丢弃一行的问题xpath
和 xpath_exists
函数,以及 XMLTABLE
hostaddr
的 libpqpg_dump
修复,包括正确输出约束索引的 REPLICA IDENTITY
属性pg_upgrade
检查旧服务器是否已干净关闭此更新还包含 tzdata 版本 2018e,其中包含朝鲜的更新。2018e 还重新引入了最初在 2018a 中引入的负 DST 更改,这会影响爱尔兰 (1971-) 的历史和当前时间戳,以及纳米比亚 (1994-2017) 和前捷克斯洛伐克 (1946-1947) 的历史时间戳。如果您的应用程序在受影响的日期范围内存储带有这些时区的时间戳,我们请您进行测试以确保您的应用程序按预期运行。
PostgreSQL 11 Beta 3 包含累积版本中的适用错误修复以及 20 多个自身的修复。有关 PostgreSQL 11 Beta 3 的完整修复列表,请访问未解决的问题页面。
PostgreSQL 9.3 将在 11 月的下一次计划发布后停止生命周期。我们敦促用户尽快开始规划升级到更高版本的 PostgreSQL。有关更多信息,请参阅我们的版本控制策略
所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade
即可应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。
跳过一个或多个更新版本的用户可能需要运行其他更新后步骤;请参阅早期版本的发行说明以了解详细信息。
要从 Beta 1 或 2 或早期版本的 PostgreSQL 升级到 PostgreSQL 11 Beta 3,您需要使用类似于在 PostgreSQL 的主要版本之间升级的策略(例如 pg_upgrade
或 pg_dump
/ pg_restore
)。有关更多信息,请访问有关升级的文档部分。
这是版本 11 的第三个测试版。PostgreSQL 项目将根据需要发布其他测试版以进行测试,然后发布一个或多个候选版本,直到 2018 年末最终发布。有关更多信息,请参阅Beta 测试页面。
每个 PostgreSQL 版本的稳定性在很大程度上取决于您(社区)使用您的工作负载和测试工具测试即将发布的版本,以便在 PostgreSQL 11 发布之前找到错误和回归。随着我们越来越接近最终版本,我们非常感谢迄今为止进行的所有测试。您的反馈和测试将有助于确定新功能的最终调整,因此请继续测试。用户测试的质量有助于确定我们何时可以发布最终版本。
PostgreSQL wiki 中公开提供了未解决的问题列表。您可以使用 PostgreSQL 网站上的此表格报告错误
https://postgresql.ac.cn/account/submitbug/