🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# E.184\. 版本 7.3.21 > **发布日期:** 2008-01-07 这个版本包含7.3.20的各种补丁,包括重大安全问题的补丁。 预计这是7.3.X系列的最后一个PostgreSQL版本。鼓励用户尽快升级到一个新的版本分支。 ## E.184.1\. 迁移到版本 7.3.21 运行7.3.X的不需要转储/恢复。不过,如果从一个7.3.13更早的版本升级而来, 请查阅7.3.13的版本说明。 ## E.184.2\. 修改列表 * 阻止用户的权限运行`VACUUM`, `ANALYZE`等执行索引里的函数(Tom)。 应用于索引表达式和部分索引谓词的函数在建立一个新的表项时被评估。一直以来以为, 如果一个人修改了一个未被信任的用户的表,这造成了特洛伊木马代码扩展的风险。 (请注意,触发器、缺省、检查约束等造成相同类型的风险。) 但是索引里的函数造成额外的威胁,因为他们将被日常维护操作如`VACUUM FULL` 执行,这些操作通常由一个超级用户账户自动执行。例如, 一个不法用户可以通过设置一个特洛伊木马索引定义并等待下一个日常清理,用超级用户权限执行代码。 修复标准维护操作(包括`VACUUM`, `ANALYZE`, `REINDEX`, 和 `CLUSTER`)的安排为作为表的所有者执行而不是调用用户, 使用`SECURITY DEFINER`函数已经使用的相同的权限切换机制。 为了阻止绕过这个安全措施,现在禁止`SET SESSION AUTHORIZATION` 和 `SET ROLE` 在`SECURITY DEFINER`环境中执行了。(CVE-2007-6600) * 需要使用`/contrib/dblink`的非超级用户只使用口令认证,作为一个安全措施(Joe)。 在7.3.20里出现的修复是不完整的,因为它为了一些`dblink`函数堵塞了整个。 (CVE-2007-6601, CVE-2007-3278) * 当使用一个多字节数据库编码时,修复`translate()`里的潜在冲突。(Tom) * 使得`contrib/tablefunc`的`crosstab()`处理空rowid本身为一个类别, 而不是冲突。(Joe) * 当重新生成`configure`脚本时需要使用一个特定的Autoconf版本。(Peter) 这只影响开发者和打包者。这样做是为了阻止意外的使用未经检验的Autoconf 和PostgreSQL版本的组合。如果你真的想要使用一个不同的Autoconf 版本,你可以移除版本检查,但是结果如何你自己负责。