pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
发行日期:. 2005-05-09
此发行版包含 8.0.2 之后的多种修复,包括几个与安全相关的问题。有关 8.0 主版本新特性的信息,请参阅 第 E.222 节。
对于运行 8.0.X 的用户,不需要进行转储/恢复。不过,它是处理在 8.0.X 系统目录初始内容中发现的两个重要安全问题的可能方法之一。用 8.0.3 的 initdb 做转储/initdb/重载序列会自动纠正这些问题。
较大的安全问题是内建字符集编码转换函数可以由非特权用户从 SQL 命令调用,但这些函数并非为此设计,对恶意选择的参数不安全。修复包括更改这些函数的声明参数列表,使其不能再从 SQL 命令调用。(这不影响编码转换机制对它们的正常使用。)
较小的问题是 contrib/tsearch2 模块创建了几个被错误声明为返回 internal 的函数,而它们并不接受 internal 参数。这破坏了所有使用 internal 参数的函数的类型安全。
强烈建议所有安装通过 initdb 或按照下述手工修复程序修复这些错误。这些错误至少允许非特权数据库用户使其服务器进程崩溃,而且可能允许非特权用户获得数据库超级用户的权限。
如果你不想做 initdb,请执行 7.4.8 发行说明中所示的相同手工修复程序。
更改编码函数签名以防止误用
更改 contrib/tsearch2 以避免不安全地使用 INTERNAL 函数结果
防范 record_out 的错误第二参数
修复古老的竞态条件,它允许事务在某些用途(如 SELECT FOR UPDATE)上比其他用途稍早被视为已提交
这是一个极其严重的缺陷,因为它可能导致应用程序短暂看到表面的数据不一致。
修复关系扩展与 VACUUM 之间的竞态条件
这在理论上可能导致丢失一页刚插入的数据,尽管该情形概率似乎很低。没有已知案例造成超过断言失败的后果。
修复 TIME WITH TIME ZONE 值的比较
在使用了 --enable-integer-datetimes 配置开关的情形下比较代码是错误的。注意:如果你在 TIME WITH TIME ZONE 列上有索引,安装此更新后需要对它执行 REINDEX,因为该修复纠正了列值的排序顺序。
修复 TIME WITH TIME ZONE 值的 EXTRACT(EPOCH)
修复 INTERVAL 值负小数秒的错误显示
此错误只在使用了 --enable-integer-datetimes 配置开关时发生。
修复 pg_dump,正确转储包含 % 的触发器名(Neil)
contrib/intagg 的更多 64 位修复
防止对返回 RECORD 的函数的错误优化
防止 COALESCE(NULL,NULL) 的崩溃
修复 libpq 的 Borland makefile
修复 contrib/btree_gist 的 timetz 类型(Teodor)
让 pg_ctl 检查在 postmaster.pid 中找到的 PID,看它是否仍是活进程
修复因添加转储时间戳导致的 pg_dump/pg_restore 问题
修复事务提交期间物化可保持游标与触发延迟触发器之间的相互作用
修复返回按引用传递数据类型的 SQL 函数中的内存泄漏
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。