1. 程式人生 > >還原SQLServer2008資料庫報使用者無法登入

還原SQLServer2008資料庫報使用者無法登入

在一臺新的伺服器上還原mssql2008r2資料庫後,原來資料庫中的賬戶無法用來開啟這臺新還原的資料庫,
報錯:登入失敗 錯誤程式碼:4064。


分析原因
在備份資料庫的時候,伺服器引擎中的安全->登入 中的使用者在還原的時候並沒有跟過來,導致登入設定降級,圖1


解決的方法

步驟1 將原來資料庫中的那個使用者換個名字(隨便什麼,只要沒有與其他名字衝突即可),圖2


步驟2 在資料庫引擎的安全->登入 中建立一個新使用者,圖3


步驟3 在UserMapping中, 對映該使用者到指定的資料庫中,圖4


步驟4 此時,在還原資料庫中,系統將自動建立一個使用者,圖5



出現這個錯誤的的一般原因:
1、誤刪除了預設的資料庫。
2、該預設的資料庫在還原資料庫時,使用了另外物理路徑來備份的資料庫進行還原,可能會出現上面的錯誤。



網上的一個解決方案,還沒有經過測試證偽:
SQL Server 2008使用者開啟CMD命令提示符,
其中,sqlcmd位於C:\Program Files\Microsoft SQL Server\100\Tools\Binn
使用以下命令:
    
    SQL帳戶登入方式: >sqlcmd
-U"密碼" -P"jtydl" -d"master" -Q"exec sp_defaultdb N'sa', N'master'"
    Windows驗證登入方式: >sqlcmd -E -d"master" -Q"exec sp_defaultdb N'BUILTIN/Administrators', N'master'"