PostgreSQL 全球開發組釋出了對所有支援版本資料庫系統的更新,包括 10.5、9.6.10、9.5.14、9.4.19、9.3.24。本次釋出修復了兩個安全問題以及過去三個月報告的 bug。
如果您有不受信任的使用者訪問您的系統,並且您正在執行 PostgreSQL 9.5 或更新版本,或者已經安裝了 dblink 或 postgres_fdw 擴充套件,則必須儘快應用此更新。所有其他使用者可以在下次方便的停機時間進行升級。
請注意,PostgreSQL 在 10.0 版本釋出後更改了其版本號方案,因此從任何 10.x 版本更新到 10.5 版本被視為小版本更新。
PostgreSQL 全球開發組還宣佈,PostgreSQL 11 的第三個 beta 版本現已可供下載。此版本包含了 PostgreSQL 11 最終版本中所有功能(儘管釋出的一些細節在最終版本之前可能會有所更改),以及在第二個 beta 版本期間報告的 bug 修復。
本次釋出解決了兩個安全漏洞
libpq 是 PostgreSQL 的客戶端連線 API,也被其他連線庫使用,存在一個內部問題,在嘗試重新連線時不會重置所有連線狀態變數。特別是,決定連線是否需要密碼的狀態變數不會被重置,這可能允許使用需要 libpq 的功能(如 dblink 或 postgres_fdw 擴充套件)的使用者登入他們本不應訪問的伺服器。
您可以透過在 PostgreSQL shell 中執行以下命令來檢查您的資料庫是否安裝了任一擴充套件
\dx dblink|postgres_fdw
建議使用者儘快升級其 libpq 安裝。
PostgreSQL 全球開發組感謝 Andrew Krasichkov 報告此問題。
INSERT ... ON CONFLICT DO UPDATE 中的記憶體洩露和授權缺失能夠發出 CREATE TABLE 的攻擊者可以使用 upsert (INSERT ... ON CONFLICT DO UPDATE) 查詢讀取伺服器記憶體中的任意位元組。預設情況下,任何使用者都可以利用這一點。擁有特定 INSERT 許可權和給定表上至少一個列的 UPDATE 許可權的使用者也可以使用檢視和 upsert 查詢來更新其他列。
此更新還修復了過去幾個月報告的 40 多個 bug。其中一些問題僅影響版本 10,但許多問題影響所有支援的版本。
這些修復包括
VACUUM 相關的修復,包括可能導致某些系統目錄表資料損壞的問題variance 和類似的聚合函式在並行查詢執行時返回準確結果SHOW ALL 以向允許讀取所有設定的角色顯示超級使用者配置設定COPY FROM .. WITH HEADER 在處理 4,294,967,296 行後會丟棄一行的錯誤xpath 和 xpath_exists 函式,以及 XMLTABLEhostaddr 的情況下的問題pg_dump 的修復,包括正確輸出約束索引的 REPLICA IDENTITY 屬性pg_upgrade 檢查舊伺服器是否已乾淨關閉此更新還包含 tzdata 版本 2018e,並對朝鮮進行了更新。2018e 版本還重新引入了最初在 2018a 版本中引入的負 DST 更改,這會影響愛爾蘭(1971-)的歷史和當前時間戳,以及奈米比亞(1994-2017)和前捷克斯洛伐克(1946-1947)的歷史時間戳。如果您的應用程式儲存了受影響日期範圍內的這些時區的時間戳,我們要求您進行測試,以確保您的應用程式按預期執行。
PostgreSQL 11 Beta 3 包含了累積釋出中的適用 bug 修復以及其自身的 20 多個修復。有關 PostgreSQL 11 Beta 3 修復的完整列表,請訪問 待處理專案頁面。
PostgreSQL 9.3 將在下一次計劃於 11 月釋出的版本後生命週期結束。我們敦促使用者儘快開始計劃升級到更新版本的 PostgreSQL。有關更多資訊,請參閱我們的版本策略。
所有 PostgreSQL 更新版本都是累積的。與其他次要版本一樣,使用者不需要轉儲和重新載入資料庫或使用 pg_upgrade 來應用此更新版本;您可以直接關閉 PostgreSQL 並更新其二進位制檔案。
跳過了一個或多個更新版本的使用者可能需要執行額外的、更新後的步驟;有關詳細資訊,請參閱早期版本的釋出說明。
要從 Beta 1 或 2 或早期版本的 PostgreSQL 升級到 PostgreSQL 11 Beta 3,您需要使用與升級 PostgreSQL 主版本(例如 pg_upgrade 或 pg_dump / pg_restore)類似的策略。有關更多資訊,請訪問關於 升級的文件部分。
這是 11 版本的第三個 beta 版本。PostgreSQL 專案將在需要時釋出其他 beta 版本進行測試,然後釋出一個或多個候選版本,直到 2018 年底最終釋出。有關更多資訊,請參閱 Beta 測試頁面。
每個 PostgreSQL 版本的穩定性在很大程度上取決於您——社群——透過您的工作負載和測試工具測試即將釋出的版本,以便在 PostgreSQL 11 釋出之前找出 bug 和迴歸。我們非常感謝迄今為止所做的所有測試,隨著我們越來越接近最終釋出。您的反饋和測試將有助於確定新功能的最終微調,請繼續進行測試。使用者測試的質量有助於決定我們何時可以進行最終釋出。
PostgreSQL wiki 上公開提供了一個 待處理專案列表。您可以使用 PostgreSQL 網站上的此表單 報告 bug。
https://postgres.tw/account/submitbug/