↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0
历史版本。 PostgreSQL 9.0 已结束支持。 2015-10-08. 请参阅 当前版本手册.

E.147. 版本 7.4.30 #

发行日期

2010-10-04

本次发布包含对 7.4.29 的多方面修复。有关 7.4 大版本中新特性的信息,请参见第 E.177 节。.

这预计是 PostgreSQL 7.4.X 系列的最后一个发行版。建议用户尽快更新到较新的发行分支。

E.147.1. 迁移到版本 7.4.30

对于运行 7.4.X 的用户,不需要进行转储/恢复。不过,如果你是从早于 7.4.26 的版本升级,请参阅第 E.151 节。

E.147.2. 变更

  • 在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器(Tom Lane)

    此变更防止了可通过破坏稍后将在同一会话中以另一 SQL 用户身份执行的 Perl 或 Tcl 代码(例如在 SECURITY DEFINER 函数内)而造成的安全问题。大多数脚本语言都提供许多实现这一点的手段,例如重新定义目标函数调用的标准函数或操作符。如果没有此变更,任何拥有 Perl 或 Tcl 语言使用权的 SQL 用户基本上都能以目标函数所有者的 SQL 权限为所欲为。

    此变更的代价是 Perl 和 Tcl 函数之间的有意通信变得更困难。为提供出路,PL/PerlU 和 PL/TclU 函数继续每会话只使用一个解释器。这不被视为安全问题,因为所有这类函数本来就以数据库超级用户的信任级别执行。

    声称提供可信执行的第三方过程语言很可能存在类似的安全问题。我们建议就安全关键用途联系你所依赖的任何 PL 的作者。

    感谢 Tim Bunce 指出此问题(CVE-2010-3433)。

  • 禁止以并非它预期配合使用的系统目录列的参数调用 pg_get_expr(),以防止可能的崩溃(Heikki Linnakangas、Tom Lane)

  • 修复“无法处理未规划的子查询”错误(Tom Lane)

    当子查询包含一个连接别名引用,而该引用展开成包含另一个子查询的表达式时,会出现此错误。

  • 写入锁文件(postmaster.pid 和套接字锁文件两者)内容时注意对其执行 fsync(Tom Lane)

    如果机器在 postmaster 启动后不久崩溃,这一疏漏可能导致锁文件内容损坏。这又可能使后续启动 postmaster 的尝试失败,直到手工删除锁文件。

  • 改进 contrib/dblink 对包含已删除列的表的处理(Tom Lane)

  • 修复 contrib/dblink 中“重复连接名”错误后的连接泄漏(Itagaki Takahiro)

  • 更新构建基础设施和文档,反映源代码仓库从 CVS 迁移到 Git 的变化(Magnus Hagander 等)

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.