.postgres 重啟後失去“作為服務登錄”;PostgreSQL 服務未啟動
我已經使用通常的安裝方法在 Windows 7 Enterprise x64 系統上安裝了 PostgreSQL 9.1 x64。這台電腦有一個 Novell Client for Windows 和一個 ZENworks Adaptive Agent,我想它在外部管理系統的一些使用者/策略。我已經在幾台 Windows 電腦上安裝了 postgres,所以我對這個系統的行為有所不同感到有點驚訝。
當電腦重新啟動時,PostgreSQL 服務不會啟動。嘗試啟動服務的完整消息是:
Windows 無法在本地電腦上啟動 postgresql-x64-9.1 - PostgreSQL Server 9.1 服務。錯誤 1069:由於登錄失敗,服務未啟動。
然後我可以轉到該服務的屬性,在“登錄”選項卡中,重新輸入最初用於安裝程序的密碼。
當我點擊確定時,會出現一個對話框:
帳戶 .\postgres 已被授予作為服務登錄的權限。
聽起來不錯。然後我可以正確啟動 PostgreSQL 服務並繼續。問題是當我重新啟動時,我需要去管理服務,重新輸入密碼並再次手動啟動服務。
查看“本地安全策略”中的“使用者權限分配”,我看到每次重啟後“作為服務登錄”都被擦除,只留下預設的“NT SERVICE\ALL SERVICES”。這是我在重新啟動時看到的:
然後我可以手動將
COMPNAME\postgres
使用者添加到此對話框以啟動服務,但它會在下次重新啟動時消失。問題是本地安全策略清除了“作為服務登錄”權限,還是 Novell 客戶端/ZENworks Adaptive Agent 有問題?是否有任何其他策略可以使 .\postgres 使用者具有“作為服務登錄”權限?
修復很簡單。轉到 postgres 服務的“登錄”選項卡,並將選擇從“此帳戶”更改為“本地系統帳戶”(我的問題中的第二個圖)。現在完美執行。
另一種方式,可能是使用者“Postgres”(使用者 Windows)的密碼已更改。因此,轉到 postgres 服務的“登錄”選項卡,以 .\postgres 身份登錄(無更改),然後重新輸入正確的密碼。