2018-05-10,PostgreSQL全球开发小组发布了所有支持的数据库系统的版本更新,包括10.4,9.6.9,9.5.13,9.4.18和9.3.23版本。 此次的版本发布是解决一个安全问题以及用户近三个所上报的Bug。用户应计划在下一次停机时进行系统升级。
请浏览"系统更新"段落来了解在安装后,应执行的步骤来对安全漏洞以及“不正确的函数非稳态和并行安全标记”的问题的修正。
请注意,PostgreSQL自10.0版本以后,采用了新的版本策略,所以从10.0,10.1,10.2,10.3向10.4升级只算是一个微小的版本升级。
这个版本中一个安装漏洞已被修正:
CVE-2018-1115: 在pg_logfile_rotate()函数中有过于宽松的权限控制
请浏览以下的“系统更新”段落了解安装后应执行的步骤。
本次更新修正了近三个所上报的超过50个Bug。部分Bug仅影响10版本,但大部分都对目前在支持的版本有影响。
这些修正包括:
本次更新也包含2018d版本的时区数据,包括对Palestine 和Antarctica时区的更新,加上对Portugal及其殖民属地历史数据的更新,也包括Enderbury, Jamaica, Turks & Caicos Islands 和Uruguay。
所有PostgreSQL的更新版本是累进方式的。对一般小版本的更新,并不需要用户对数据进行导出和导入或是使用pg_upgrade进行更新(不过对这次更新,用户需要浏览下面有关"volatility 和 parallel-safety 函数标记的段落操作"),只需要停止PostgreSQL服务,更新一下服务器的二进制文件即可。
用户跳过了一个或是多个补丁版本可能也需要额外的后续操作,请浏览详细的发布说明来检查更早版本升级的细节。
如果你在PostgreSQL 9.6或是10版本安装了"adminpack"扩展,你需要使用数据库管理员的权限在所有安装了“adminpack”扩展的数据库,运行以下指令:
ALTER EXTENSION adminpack UPDATE;
如你使用上述任何函数,你需要按下述方法更新他们的标记状态:
/* 应标记为 "volatile" 状态的函数 */
ALTER FUNCTION pg_catalog.cursor_to_xml(refcursor, int, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.cursor_to_xmlschema(refcursor, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xml_and_xmlschema(text, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xmlschema(text, boolean, boolean, text) VOLATILE;
/* 应标记为 "parallel-unsafe" 状态的函数 */
ALTER FUNCTION pg_catalog.binary_upgrade_create_empty_extension(text, text, bool, text,
_oid, _text, _text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.brin_desummarize_range(regclass, bigint) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.brin_summarize_range(regclass, bigint) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.cursor_to_xml(refcursor, int, boolean, boolean, text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.cursor_to_xmlschema(refcursor, boolean, boolean, text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.gin_clean_pending_list(regclass) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.pg_import_system_collations(regnamespace) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.ts_rewrite(tsquery, text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.ts_stat(text) PARALLEL UNSAFE;
ALTER FUNCTION pg_catalog.ts_stat(text, text) PARALLEL UNSAFE;