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