pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
2008-01-07
此发行版包含 8.2.5 之后的多种修复,包括对重要安全问题的修复。有关 8.2 主版本新特性的信息,请参阅 第 E.95 节。
对于运行 8.2.X 的用户,不需要进行转储/恢复。
防止索引中的函数以运行 VACUUM、ANALYZE 等的用户的权限执行(Tom)
每当产生新的表条目时,都会求值索引表达式和部分索引谓词中使用的函数。人们早就明白,如果修改不可信用户拥有的表,这会带来特洛伊木马代码执行的风险。(注意触发器、默认值、检查约束等也构成同类风险。)但索引中的函数带来额外危险,因为它们会由例程维护操作(如 VACUUM FULL)执行,而这些操作通常在超级用户账户下自动执行。例如,恶意用户可以通过设置特洛伊木马索引定义并等待下一次例程清理来以超级用户权限执行代码。修复安排标准维护操作(包括 VACUUM、ANALYZE、REINDEX 和 CLUSTER)以表所有者而非调用用户的身份执行,使用已用于 SECURITY DEFINER 函数的同一权限切换机制。为防止绕过此安全措施,现在禁止在 SECURITY DEFINER 上下文中执行 SET SESSION AUTHORIZATION 和 SET ROLE。(CVE-2007-6600)
修复正则表达式包中的若干缺陷(Tom、Will Drewry)
精心构造的正则表达式模式可能导致崩溃、无限或接近无限的循环和/或大量内存消耗,这些都对接受来自不可信来源的正则搜索模式的应用程序构成拒绝服务风险。(CVE-2007-4769、CVE-2007-4772、CVE-2007-6067)
作为安全措施,要求使用 /contrib/dblink 的非超级用户只使用口令认证(Joe)
8.2.5 中出现的修复并不完整,它只堵住了部分 dblink 函数的漏洞。(CVE-2007-6601、CVE-2007-3278)
修复 GIN 索引 WAL 重放中的缺陷(Teodor)
修复 maintenance_work_mem 为 4GB 或更多时 GIN 索引构建无法正确工作的问题(Tom)
更新时区数据文件到 tzdata 发行版 2007k(特别是阿根廷最近的变更)(Tom)
改进规划器在非 C 区域设置下对 LIKE/正则表达式估计的处理(Tom)
修复深层外连接嵌套的规划速度问题以及可能糟糕的连接顺序选择(Tom)
修复某些 WHERE false AND var IN (SELECT ...) 情形下的规划器失败(Tom)
让 CREATE TABLE ... SERIAL 和 ALTER SEQUENCE ... OWNED BY 不更改序列的 currval() 状态(Tom)
保留被 ALTER TABLE ... ALTER COLUMN TYPE 重建的索引的表空间和存储参数(Tom)
让归档恢复总是开始新的 WAL 时间线,而不是只在使用恢复停止时间时(Simon)
这避免了试图覆盖最后一个 WAL 段现有归档副本的极端情形风险,而且看起来比原来的定义更简单干净。
当表太小而不适用时,让 VACUUM 不使用全部 maintenance_work_mem(Alvaro)
修复使用多字节数据库编码时 translate() 可能的崩溃(Tom)
让 corr() 对负相关值返回正确结果(Neil)
修复超过 68 年的 interval 在 extract(epoch from interval) 中的溢出(Tom)
修复 PL/Perl 在可信函数中使用 UTF-8 正则表达式时不失败(Andrew)
修复 PL/Perl 在平台 Perl 把 bool 类型定义为 int 而非 char 时的问题(Tom)
虽然理论上这可能在任何地方发生,但没有标准 Perl 构建这样做……直到 Mac OS X 10.5。
修复 PL/Python 在 64 位机器上与 Python 2.5 正确工作(Marko Kreen)
修复 PL/Python 在长异常消息上不崩溃(Alvaro)
修复 pg_dump,使其正确处理默认表达式与父表不同的继承子表(Tom)
修复 PGPASSFILE 指向非普通文件时 libpq 的崩溃(Martin Pitt)
ecpg 解析器修复(Michael)
让 contrib/pgcrypto 防御在超过 128 位密钥上失败的 OpenSSL 库——至少某些 Solaris 版本是这种情形(Marko Kreen)
让 contrib/tablefunc 的 crosstab() 把 NULL rowid 本身作为一个类别处理,而不是崩溃(Joe)
修复 tsvector 和 tsquery 输出例程以正确转义反斜杠(Teodor、Bruce)
修复 to_tsvector() 在超长输入字符串上的崩溃(Teodor)
要求在重新生成 configure 脚本时使用特定版本的 Autoconf(Peter)
这只影响开发者和打包者。此变更是为了防止意外使用未经测试的 Autoconf 与 PostgreSQL 版本组合。如果确实想使用不同的 Autoconf 版本,可以移除版本检查,但结果是否可用由你自己负责。
更新 gettimeofday 配置检查,使 PostgreSQL 能在更新版本的 MinGW 上构建(Magnus)
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。