SQL SERVER本地管理員和SA帳號無法登入的解決方案
這幾天在講SQL Server 2008的課程,今天頭一天,因為主辦方準備的環境是用做好的同一個虛擬機器,然後分發到很多台實驗用的機器後,用sysprepare這種工具,修改了電腦名稱。一早就遇到大家無法登入到SQL Server的問題,不管是用本地管理員,還是SA帳號。
1.首先從Windows身分識別驗證方式登入
2.右鍵點擊“伺服器”,選擇“屬性”
3.在左側找到“安全性”,裡面有個Windows身份登入,還有一個“SQL Server和Windows身分識別驗證”,選擇第二個。
4.重啟SQLSERVER服務。(還是右鍵點擊“伺服器”,就是根節點,選擇重啟伺服器
我分析下來,本地管理員無法登入的原因就是因為電腦名稱修改了之後,現在的本地管理員的SID已經不是修改之前那個本地管理員的SID了,而SQL Server裡面其實儲存的是SID,並不是使用者名稱稱,所以導致他無法登入伺服器。而至於用SA帳號無法登入,是因為主辦方在準備這個環境的時候,並沒有啟用混合驗證模式。
以前也遇到過類似的一個問題,但一下子忘記怎麼解決的了。不管怎樣,我們還是想辦法解決掉了這個問題,參考了下面的部落格文章
http://blogs.msdn.com/b/raulga/archive/2007/07/12/disaster-recovery-what-to-do-when-the-sa-account-password-is-lost-in-sql-server-2005.asp教程x
大致的步驟就是:
用本地管理員登入,停止SQL Server服務
修改SQL Server服務的啟動參數,在原先的啟動參數後面添加 “;-m”(不要帶雙引號),這是將SQL Server設定進入單一使用者模式
啟動SQL Server服務,使用sqlcmd登入到SQL Server伺服器
執行exec sp_addsvrrolemember ‘MachineNameAdministrator’ ‘sysadmin’;GO;(請注意,紅色部分要替換為你的本地管理員帳號)
停止SQL Server服務,將原先添加的啟動參數“;-m”刪除掉
啟動SQL Server服務
建議大家安裝SQL Server的時候,還是設定混合驗證模式和SA密碼,然後要保護好這個密碼。