SQL Server 錯(cuò)誤:15023(創(chuàng)建對(duì)于用戶(hù)失?。?/h1>
SQL Server錯(cuò)誤15023:當(dāng)前數(shù)據(jù)庫(kù)中已存在用戶(hù)或角色
在把遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫(kù)備份還原到本地機(jī)后, 給一個(gè)"登錄"關(guān)聯(lián)一個(gè)"用戶(hù)"時(shí)(用戶(hù)映射),發(fā)生錯(cuò)誤: “錯(cuò)誤15023:當(dāng)前數(shù)據(jù)庫(kù)中已存在用戶(hù)或角色”
原因:
sql server中“登錄”與“用戶(hù)”的區(qū)別,“登錄”用于用戶(hù)身份驗(yàn)證,而數(shù)據(jù)庫(kù)“用戶(hù)”帳戶(hù)用于數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)和權(quán)限驗(yàn)證。登錄通過(guò)安全識(shí)別符 (SID) 與用戶(hù)關(guān)聯(lián)。將數(shù)據(jù)庫(kù)恢復(fù)到其他服務(wù)器時(shí),數(shù)據(jù)庫(kù)中包含一組用戶(hù)和權(quán)限,但可能沒(méi)有相應(yīng)的登錄或者登錄所關(guān)聯(lián)的用戶(hù)可能不是相同的用戶(hù)。這種情況被稱(chēng)為存在“孤立用戶(hù)”。此時(shí)是不能通過(guò)新建登錄或者是對(duì)同名登錄授予對(duì)應(yīng)數(shù)據(jù)庫(kù)的“用戶(hù)”權(quán)限來(lái)解決登錄問(wèn)題,因?yàn)镾QL Server會(huì)報(bào)出“錯(cuò)誤15023:當(dāng)前數(shù)據(jù)庫(kù)中已存在用戶(hù)或角色”
解決:
為了解決這個(gè)問(wèn)題,需要調(diào)用系統(tǒng)存儲(chǔ)過(guò)程sp_change_users_login,具體用法如下:
Use Northwind
go
sp_change_users_login 'update_one', 'test', 'test'
其中Northwind為存在孤立用戶(hù)的數(shù)據(jù)庫(kù),update_one是存儲(chǔ)過(guò)程的參數(shù),表示只處理一個(gè)用戶(hù),前一個(gè)test是“用戶(hù)”,后一個(gè)test是“登錄”,以上這個(gè)SQL表示將服務(wù)器登錄“test”與 Northwind 數(shù)據(jù)庫(kù)用戶(hù)“test”重新連接起來(lái)。這樣就可以正常使用數(shù)據(jù)庫(kù)了。
關(guān)鍵詞:SQL
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 0
- 0
- 0
- 0
- 0
- 0