從 Active Directory 降級伺服器後修復 SQL Server 2005

從 Active Directory 降級伺服器後修復 SQL Server 2005

讓我先聲明一下,我比較像是 UNIX 愛好者,這讓我抓狂。我有一台 Windows 2003 伺服器,正在執行 VMware 虛擬基礎架構系統的 SQL Server 2005。理論上是讓這個系統成為 Active Directory 控制器,但我們決定暫時延後。我將伺服器降級到 Active Directory 之外(不再是任何 Active Directory 的控制器或成員)。不幸的是,當我這樣做時,SQL Server 服務將不再啟動。

當我進入 SQL Server 設定管理員並嘗試將登入變更為管理員帳戶或內建帳戶之一時,我收到錯誤「帳戶名稱和安全 ID 之間沒有完成對應」。

如何修復 SQL Server,使其不考慮 Active Directory 權限和帳戶 ID?

答案1

這是一種粗暴的方法,但是您是否嘗試過卸載並重新安裝 SQL Server?如果它不允許你,你可以嘗試這些腳步

作為另一種選擇,您可以嘗試這些腳步修復本機帳戶 SID 問題,但這看起來有點痛苦。

答案2

我還沒有啟動一個測試實例來在我自己的機器上重現這一點,但看起來下面的鍵中存儲了三個註冊表值,它們引用了 SQL Server 2005 安裝創建的組的 SID:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\Setup

這些值為 AGTGROUP、FTSGROUP 和 SQLGROUP。具有用於填充這些值的 SID 的群組是(替換為您的伺服器電腦的名稱和 SQL 實例名稱):

SQLServer2005MSSQLUser$SERVER-NAME$INSTANCE-NAME
SQLServer2005MSFTEUsers$SERVER-NAME$INSTANCE-NAME
SQLServer2005SQLAgentUsers$SERVER-NAME$INSTANCE-NAME 

據我所知(同樣,我自己無需重複),您需要為此伺服器建立這些群組,然後取得新群組的 SID 並將它們放入註冊表中。看起來「修復」 SQL Server 安裝就可以做到這一點。看看 Microsoft Connect 的這篇文章:http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=202561

在那篇文章中搜尋短語「一個或多個 SQL 安全群組以某種方式被刪除」並閱讀其中的解決方法。看起來清除舊群組並在修復模式下執行安裝程式將執行您想要的操作。我相信這一點比嘗試像我發現的建議的一些部落格文章和論壇帖子那樣手動重新創建它們更好。

話雖如此,在開始更改之前,至少備份註冊表和資料庫的該部分。擁有良好的備份可以讓事情「順利進行」...<微笑>

相關內容