PostgreSQL 全球開發團隊已發布我們資料庫系統所有支援版本的更新,包括 10.5、9.6.10、9.5.14、9.4.19、9.3.24。 此版本修復了兩個安全性問題以及過去三個月回報的錯誤。
如果您的系統有不受信任的使用者存取,並且您正在執行 PostgreSQL 9.5 或更新版本,或已安裝 dblink 或 postgres_fdw 擴充功能,您必須盡快套用此更新。 所有其他使用者可以在下一次方便的停機時間升級。
請注意,PostgreSQL 在版本 10.0 的發布中變更了其版本控制方案,因此從任何 10.x 版本更新到版本 10.5 都被視為小版本更新。
PostgreSQL 全球開發團隊同時宣布 PostgreSQL 11 的第三個 beta 版本現在可以下載。 此版本包含 PostgreSQL 11 最終版本中將提供的所有功能的預覽(儘管該版本的某些細節可能會在此之前發生變化),以及在第二個 beta 版本期間回報的錯誤修復。
此版本已關閉兩個安全性漏洞
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 多個錯誤。 其中一些問題僅影響版本 10,但許多問題影響所有支援的版本。
這些修復包括
VACUUM
相關的幾項修復,包括可能導致某些系統目錄表格中的資料損壞的問題variance
和類似的聚合函式,以在使用平行查詢執行時傳回準確的結果SHOW ALL
以向允許讀取所有設定的角色顯示超級使用者配置設定COPY FROM .. WITH HEADER
會在處理完每 4,294,967,296 行後刪除一行的問題xpath
和 xpath_exists
函式以及 XMLTABLE
hostaddr
的某些情況下的問題pg_dump
修復,包括正確輸出約束索引的 REPLICA IDENTITY
屬性pg_upgrade
檢查舊伺服器是否已乾淨地關閉此更新還包含 tzdata 版本 2018e,其中包含北韓的更新。 2018e 還重新引入了最初在 2018a 中引入的負 DST 變更,這會影響愛爾蘭(1971 年至今)的歷史和目前時間戳記,以及納米比亞(1994-2017 年)和前捷克斯洛伐克(1946-1947 年)的歷史時間戳記。 如果您的應用程式在受影響的日期範圍內使用這些時區儲存時間戳記,我們要求您進行測試以確保您的應用程式按預期執行。
PostgreSQL 11 Beta 3 包含來自累計版本的適用錯誤修復以及其自身的 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 版本,然後發布一個或多個候選發布版本 (Release Candidate),直到 2018 年底正式發布。更多資訊請參考 Beta 測試頁面。
每個 PostgreSQL 版本的穩定性都極大程度取決於您,社群的貢獻。請使用您的工作負載和測試工具測試即將發布的版本,以便在 PostgreSQL 11 發布之前找到錯誤和回歸 (regression)。 我們非常感謝迄今為止進行的所有測試,隨著我們越來越接近最終版本。 您的回饋和測試將有助於確定新功能的最終調整,因此請繼續測試。 使用者測試的品質有助於確定我們何時可以發布最終版本。
PostgreSQL Wiki 上公開提供一份未完成項目清單。您可以使用 PostgreSQL 網站上的此表單報告錯誤
https://postgres.tw/account/submitbug/