最近 PostgreSQL 亮相 那个新闻 发布了几个更正更新 适用于所有当前支持的 PostgreSQL 分支,即版本 14.3、13.7、12.11、11.16 和 10.22。
新版本 提供 50 多个更正 其中一些问题也可能影响其他受支持的 PostgreSQL 版本。
- 可能导致 ltreecolumns 上的 GiST 索引损坏的问题。 升级后,您需要重新索引 ltree 列上的 GiST 索引。
- 修复从区间类型中提取 epoch 值时舍入不正确的问题。
- 修复了 timestamptz 和 timetzen table_to_xmlschema() 类型的错误输出。
- 修复了与影响异步远程查询的调度程序问题相关的错误。
- 修复 ALTER FUNCTION 以支持在同一命令中更改函数的并行属性及其 SET 变量列表。
- 修复了在初始键为表达式的索引上使用 CLUSTER 时对表行进行错误排序的问题。
- 解决了删除分区索引时出现死锁失败的风险。
- 修复了 DROP TABLESPACE 和检查点之间的竞争条件,这些条件可能无法从表空间目录中删除所有死文件。
- 修复了与检查点重叠的 TRUNCATE 命令后故障转移的潜在问题。
- 修复了错误 PANIC:当 WAL 延续日志丢失时,在备用升级期间不满足 xlog 刷新请求。
- 修复了热备用冲突处理中的自动锁定可能性。
除此之外, 这些新的更正版本还解决了漏洞 CVE-2022-1552 与绕过特权操作 Autovacuum、REINDEX、CREATE INDEX、REFRESH MATERIALIZED VIEW、CLUSTER 和 pg_amcheck 的执行隔离的能力有关。
提到在这些修正版本中解决的漏洞,检测到的问题 允许攻击者 有什么 在任何模式中创建非临时对象的权限 存储服务器可以以超级用户权限执行任意 SQL 函数,而特权用户执行上述影响攻击者对象的操作。
当运行 autovacuum 驱动程序时自动清理数据库时,甚至可以利用该漏洞。
如果您无法执行更新, 作为阻止问题的解决方法可 禁用自动真空 并且不以 root 用户身份执行 REINDEX、CREATE INDEX、REFRESH MATERIALIZED VIEW 和 CLUSTER 操作,不运行 pg_amcheck 实用程序,也不恢复由 pg_dump 实用程序创建的备份的内容。
如果正在处理的对象属于受信任的用户,则 VACUUM 的执行被认为是安全的,任何命令操作的使用也是如此。
其他变化 在新版本中 包括 JIT 代码更新以使用 LLVM 14,允许使用从区间类型数据中检索的纪元格式值的模式数据库模板,使用异步远程查询时不正确的程序员行为,在基于表达式的索引上使用表达式 CLUSTER 时不正确的表行排序,数据丢失在构建排序的 GiST 索引后立即崩溃,分区索引删除死锁,DROP TABLESPACE 操作和状态提交(检查点)之间的竞争条件。
此外,pg_ivm 1.0 扩展的发布与对 PostgreSQL 14 的 IVM(增量视图维护)支持的实现可以突出显示。IVM 提供了一种更新物化视图的替代方法,如果更改影响视图的一小部分,效率会更高.
IVM 允许物化视图立即更新,只对其应用增量更改,而无需重新计算视图,这是使用“REFRESH MATERIALIZED VIEW”操作完成的。
最后,如果您有兴趣能够了解更多关于这个新版本的信息,可以咨询详情 在下面的链接中。