多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# E.122\. 版本 8.1.3 > **发布日期:** 2006-02-14 这个版本包含各种自8.1.2以来的修复,包括一个非常严重的安全问题。 关于8.1主版本的新特性信息,请查看[Section E.125](#calibre_link-247)。 ## E.122.1\. 迁移到版本 8.1.3 运行8.1.X的用户不需要转储/恢复。不过,如果你是从一个早于8.1.2的版本升级而来, 那么请查看8.1.2的版本声明。 ## E.122.2\. 修改列表 * 修复允许任何登陆的用户为任何其他数据库用户id `SET ROLE`的错误 (CVE-2006-0553) 由于不充分的有效性检查,用户会开发特殊的情况,`SET ROLE` 通常用于在错误之后恢复以前的角色设置。例如,这允许普通用户请求超级用户身份。 权限的增加只在8.1.0-8.1.2中存在风险。不过,在所有回退到7.3的版本中, 在`SET SESSION AUTHORIZATION`中有一个相关的错误, 允许非特权的用户使服务器崩溃,如果已经启用断言编译了(这不是缺省的)。 感谢Akio Ishida报告这个问题。 * 修复自动插入的行中行可见性逻辑的错误 (Tom) 在少数情况下,当前命令插入的行可能被看做早已是有效的,而此时不应该是这样的。 修复在8.0.4、7.4.9和7.3.11版本中创建的错误。 * 修复在pg_clog和pg_subtrans文件创建期间会导致"文件早已存在" 错误的竞态条件 (Tom) * 修复缓存失效消息正好在错误时间到达导致崩溃的情况 (Tom) * 为预备语句中的`UNKNOWN`参数适当的检查`DOMAIN`约束 (Neil) * 确保`ALTER COLUMN TYPE`以正确的顺序处理`FOREIGN KEY`、 `UNIQUE`和`PRIMARY KEY`约束 (Nakano Yoshihisa) * 修复以允许恢复拥有交叉模式引用自定义操作符或操作符类的转储 (Tom) * 允许pg_restore在`COPY`失败之后正确的继续; 以前它尝试将剩余的`COPY`数据看做SQL命令 (Stephen Frost) * 当没有指定数据目录时,修复pg_ctl `unregister` 的崩溃 (Magnus) * 修复libpq `PQprint` HTML标签 (Christoph Zwerschke) * 修复在AMD64和PPC上的ecpg崩溃 (Neil) * 允许`SETOF`和`%TYPE` 一起在函数结果类型声明中使用 * 如果错误发生在参数在PL/python中传递期间,那么正确的恢复 (Neil) * 修复`plperl_return_next`中的内存泄露 (Neil) * 修复PL/perl在Win32的环境上匹配后端的处理 (Andrew) * 各种优化器修复 (Tom) * 修复`log_min_messages`在Win32上设置为`DEBUG3` 或`postgresql.conf`之外时的崩溃 (Bruce) * 为Win32、Cygwin, OS X、AIX修复pgxs `-L` 的库路径声明 (Bruce) * 在检查Win32管理员权限时检查SID是否启用 (Magnus) * 适当的拒绝超出范围的数据输入 (Kris Jurka) * 可移植性修复,以在配置期间测试`finite`和`isinf`的存在 (Tom) * 通过避免每个数据行的内核调用,提高`COPY IN`经过libpq的速度 (Alon Goldshuv) * 提高`/contrib/tsearch2`索引创建的速度 (Tom)