PostgreSQL Global Development Group 已經發布了我們資料庫系統所有支援版本的更新,包含 9.5.2、9.4.7、9.3.12、9.2.16 和 9.1.21。此版本修正了兩個安全性問題,以及版本 9.5 中的一個索引損毀問題。它也包含了早期版本的各種錯誤修正。PostgreSQL 9.5.0 或 9.5.1 的使用者應盡快更新。
此版本關閉了安全性漏洞 CVE-2016-2193,在同一個會話中,查詢計畫可能會被多個 ROLE 重複使用。這可能會導致查詢使用了錯誤的資料列層級安全性 (Row Level Security, RLS) 策略。
此更新也修正了 CVE-2016-3065,一個因為使用 pageinspect 與 BRIN 索引頁面而觸發的伺服器崩潰錯誤。由於攻擊者可能可以暴露伺服器記憶體的幾個位元組,因此這個崩潰被視為一個安全性問題。
在此版本中,由於收到索引損毀的報告,PostgreSQL 專案被迫停用 9.5 針對許多索引的縮寫鍵 (Abbreviated Keys) 效能功能。這可能會影響 TEXT、VARCHAR 和 CHAR 欄位上,且不在 "C" locale 中的任何 B-tree 索引。其他 locale 中的索引將失去該功能的效能優勢,並且應該在現有索引損毀的情況下進行 REINDEX。如果專案找到問題的解決方案,該功能可能會在未來版本中重新啟用。有關更多資訊,請參閱發布說明和 關於此問題的 wiki 頁面。
除了上述之外,此版本還根據過去幾個月使用者回報的錯誤修正了許多其他問題。這包括影響 PostgreSQL 多個版本的錯誤,例如:
此更新還包含 tzdata 版本 2016c,其中包含亞塞拜然、智利、海地、巴勒斯坦和俄羅斯的更新,以及其他地區的歷史修正。
版本 9.5 的使用者將需要 REINDEX 在非 C locale 的字元欄位上建立的任何索引。跳過了多個更新版本的其他版本的使用者可能需要執行額外的更新後步驟;請參閱發布說明以了解詳細資訊。
所有 PostgreSQL 更新版本都是累積性的。與其他次要版本一樣,使用者不需要轉儲和重新載入他們的資料庫,也不需要使用 pg_upgrade 才能套用此更新版本;您可以簡單地關閉 PostgreSQL 並更新其二進位檔案。
連結