Microsoft SQLServer, 錯(cuò)誤 : 15023,用戶(hù)、組或角色'XXX'在當(dāng)前數(shù)據(jù)庫(kù)中已存在如何解決
為一個(gè)數(shù)據(jù)庫(kù)添加一個(gè)用戶(hù)或者映射數(shù)據(jù)庫(kù)時(shí),提示以下錯(cuò)誤信息:
用戶(hù)、組或角色 ***** 在當(dāng)前數(shù)據(jù)庫(kù)中已存在。 (Microsoft SQLServer, 錯(cuò)誤 : 15023)
問(wèn)題原因:在還原數(shù)據(jù)庫(kù)的過(guò)程中,在其它sql server服務(wù)器上進(jìn)行還原之后,會(huì)出現(xiàn)一個(gè)在原服務(wù)器上可以正常的用戶(hù)在目標(biāo)服務(wù)器上出現(xiàn)無(wú)法登錄的使用。
解決方法:
當(dāng)數(shù)據(jù)庫(kù)恢復(fù)到其他服務(wù)器時(shí),原數(shù)據(jù)庫(kù)中包含一組用戶(hù)和權(quán)限,但可能沒(méi)有相應(yīng)的登錄或者登錄所關(guān)聯(lián)的用戶(hù)可能不是相同的用戶(hù)。這種情況可能會(huì)出現(xiàn)上面的問(wèn)題。該問(wèn)題是無(wú)法通過(guò)新建登錄或者是對(duì)同名登錄授予對(duì)應(yīng)數(shù)據(jù)庫(kù)的“用戶(hù)”權(quán)限來(lái)解決登錄問(wèn)題。由于SQLServer會(huì)提示“錯(cuò)誤15023:當(dāng)前數(shù)據(jù)庫(kù)中已存在用戶(hù)或角色”,要解決這個(gè)問(wèn)題,需要調(diào)用系統(tǒng)存儲(chǔ)過(guò)程sp_change_users_login,具體用法如下:
1.打開(kāi)SQL Server Management Studio, 右鍵選擇“數(shù)據(jù)庫(kù)”>“新建查詢(xún)”
輸入以下sql腳本:
Use 數(shù)據(jù)庫(kù)名
go
sp_change_users_login update_one, XXX, XXX
接著執(zhí)行腳本即可。
注:其中update_one是存儲(chǔ)過(guò)程的參數(shù),表示只處理一個(gè)用戶(hù),前一個(gè)XXX是“用戶(hù)”,后一個(gè)XXX是“登錄”,以上這個(gè)SQL表示將服務(wù)器登錄“XXX”與數(shù)據(jù)庫(kù)用戶(hù)“XXX”重新關(guān)聯(lián)。
會(huì)員登錄
賬號(hào)登錄還沒(méi)有賬號(hào)?立即注冊(cè)