选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 9.5
历史版本PostgreSQL 9.5 已于 2021 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

E.14. 版本 9.5.12 #

发布日期:. 2018-03-01

此版本包含自 9.5.11 以来的多种修复。 有关 9.5 大版本中新特性的信息,参见 第 E.26 节

E.14.1. 迁移到版本 9.5.12

对于运行 9.5.X 的用户,不需要转储/恢复。

不过,如果你运行的安装中并非所有用户都相互信任,或者你维护打算在任意 场合使用的应用或扩展,强烈建议阅读下面第一条变更日志条目所述的 文档更改,并采取适当步骤确保你的安装或代码安全。

另外,下面第二条变更日志条目所述的更改可能导致索引表达式或物化视图中 使用的函数在自动分析期间或从转储重新装载时失败。升级之后,请监控 服务器日志中此类问题,并修复受影响的函数。

另外,如果你是从 9.5.10 之前的版本升级,参见 第 E.16 节

E.14.2. 变更

  • 记录如何配置安装和应用以防受其他用户依赖 search_path 的特洛伊木马攻击 (Noah Misch)

    使用包含任何可被恶意用户写入的模式 的 search_path 设置,会使该用户能够截获查询的 控制,然后以被攻击用户的权限运行任意 SQL 代码。虽然可以写出能防范 此类劫持的查询,但记法上很繁琐,而且很容易遗漏漏洞。因此,我们现 在推荐不把任何不受信任模式放入搜索路径的配置。相关文档见 第 5.8.6 节(面向数据库管理员和用户)、 第 31.1 节(面向应用作者)、 第 35.15.5 节(面向扩展作者)和 CREATE FUNCTION(面向 SECURITY DEFINER 函数的作者)。(CVE-2018-1058)

  • 避免在 pg_dump 和其他客户端程序中使用不 安全的 search_path 设置 (Noah Misch、Tom Lane)

    pg_dumppg_upgradevacuumdbPostgreSQL 自带的应用本身也容易受到上一条 变更日志条目所述劫持的影响;由于这些应用通常由超级用户运行,它们 是特别有吸引力的目标。为使它们无论整个安装是否已被加固都安全, 修改它们使其 search_path 设置只包含 pg_catalog 模式。自动清理工作者进程现在也 同样如此。

    当用户提供的函数被这些程序间接执行时(例如索引表达式中的用户提供 函数),更严格的 search_path 可能导致错误,需要 通过调整这些用户提供的函数使其不对被调用时的搜索路径做任何假定来 更正。这从来都是良好实践,但现在这是正确行为的必要条件。 (CVE-2018-1058)

  • 修复子计划中出现 CTE 引用时并发更新重检查的错误行为(Tom Lane)

    如果 CTE(WITH 子句引用)被用于 InitPlan 或 SubPlan,且查询因试图更新或锁定并发更新的行而需要重检查,可能得到 错误结果。

  • 修复外连接中重叠 mergejoin 子句导致的规划器失败(Tom Lane)

    这些错误在边界情况下导致 left and right pathkeys do not match in mergejoinouter pathkeys do not match mergeclauses 规划器错误。

  • 修复 pg_upgrade 未能为物化视图保留 relfrozenxid 的问题 (Tom Lane、Andres Freund)

    这一疏漏可能导致升级后物化视图中的数据损坏,表现为 could not access status of transactionfound xmin from before relfrozenxid 错误。很少 刷新的物化视图,或只用 REFRESH MATERIALIZED VIEW CONCURRENTLY 维护的 物化视图更可能出现问题。

    如果观察到这种损坏,可以通过刷新物化视图(不带 CONCURRENTLY)来修复。

  • 修复错误 CONTEXT 栈中 PL/Python 函数名的错误报告 (Tom Lane)

    嵌套 PL/Python 函数调用(即通过 SPI 查询从另一个 PL/Python 函数到达的 调用)中发生的错误会导致栈跟踪把内层函数名显示两次,而不是预期的 结果。此外,嵌套 PL/Python DO 块中的错误在某些 平台上可能导致空指针解引用崩溃。

  • 允许 contrib/auto_explainlog_min_duration 设置范围达到 INT_MAX, 即约 24 天而不是 35 分钟(Tom Lane)

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。