問題情境
使用 Sysprep 修改電腦名稱後,原本的本地管理員帳號與 SA 帳號均無法登入 SQL Server 2008。根本原因有二:
- SID 不匹配:SQL Server 儲存的是 Windows 帳號的 SID,電腦重命名後本地管理員雖同名但 SID 已變,導致無法辨識。
- 未啟用混合驗證:環境準備時僅啟用 Windows 驗證,SA 帳號自然無法使用。
快速修復:啟用混合驗證模式
- 以 Windows 驗證登入 SSMS
- 右鍵伺服器節點 → 屬性 → 安全性
- 將 伺服器驗證 改為 SQL Server 和 Windows 驗證模式
- 右鍵伺服器節點 → 重新啟動 服務生效
進階修復:將本地管理員加入 sysadmin 角色(單用戶模式)
若上述方法仍無法以本地管理員登入,需以單用戶模式啟動 SQL Server 並授權:
- 停止 SQL Server 服務
- 修改服務啟動參數,在原參數後加入
;-m(單用戶模式)
- 啟動 SQL Server 服務
- 使用
sqlcmd 連線:sqlcmd -S . -E
- 執行授權指令:
EXEC sp_addsrvrolemember 'MachineName\Administrator', 'sysadmin';
GO
- 停止服務,移除
;-m 參數
- 正常啟動 SQL Server 服務
最佳實踐建議
- 安裝時務必勾選 混合驗證模式 並設定強健 SA 密碼
- 妥善保管 SA 密碼,避免單一認證管道風險
- 電腦重命名前先移除 SQL Server 與資料庫相依性,或重裝較保險