SQL (2005)2008R2問題:用戶、組或角色'XXX'在當(dāng)前數(shù)據(jù)庫中已存在?
[重要通告]如您遇疑難雜癥,本站支持知識付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!
為一個數(shù)據(jù)庫添加一個用戶或者映射數(shù)據(jù)庫時,提示以下錯誤信息:
用戶、組或角色 '*****' 在當(dāng)前數(shù)據(jù)庫中已存在。 (Microsoft SQLServer, 錯誤 : 15023)
問題原因:在還原數(shù)據(jù)庫的過程中,在其它sql server服務(wù)器上進(jìn)行還原之后,會出現(xiàn)一個在原服務(wù)器上可以正常的用戶在目標(biāo)服務(wù)器上出現(xiàn)無法登錄的使用。
解決方法:
當(dāng)數(shù)據(jù)庫恢復(fù)到其他服務(wù)器時,原數(shù)據(jù)庫中包含一組用戶和權(quán)限,但可能沒有相應(yīng)的登錄或者登錄所關(guān)聯(lián)的用戶可能不是相同的用戶。這種情況可能會出現(xiàn)上面的問題。該問題是無法通過新建登錄或者是對同名登錄授予對應(yīng)數(shù)據(jù)庫的“用戶”權(quán)限來解決登錄問題。由于SQLServer會提示“錯誤15023:當(dāng)前數(shù)據(jù)庫中已存在用戶或角色”,要解決這個問題,需要調(diào)用系統(tǒng)存儲過程sp_change_users_login,具體用法如下:
1.打開SQL Server Management Studio, 右鍵選擇“數(shù)據(jù)庫”>“新建查詢”
輸入以下sql腳本:
//=======================
Use [數(shù)據(jù)庫名]
go
sp_change_users_login 'update_one', 'XXX', 'XXX'
//========================
接著執(zhí)行腳本即可。
注:其中update_one是存儲過程的參數(shù),表示只處理一個用戶,前一個XXX是“用戶”,后一個XXX是“登錄”,以上這個SQL表示將服務(wù)器登錄“XXX”與數(shù)據(jù)庫用戶“XXX”重新關(guān)聯(lián)。
問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!