Sqlserver用戶、組或角色在當前數據庫中已存在

今天在給數據庫賬號分配數據庫權限的時候,直接拋出拋出錯誤,錯誤的詳細信息如下:用戶、組或角色 '' 在當前數據庫中已存在。 (Microsoft SQL Server,錯誤: 15023)。查閱相關文檔後發現,拋出這種錯誤,可能是因爲數據庫中存在孤立用戶。

將數據庫恢復到其他服務器時,數據庫中包含一組用戶和權限,但可能沒有相應的登錄或者登錄所關聯的用戶可能不是相同的用戶。這種情況被稱爲存在“孤立用戶”。此時是不能通過新建登錄或者是對同名登錄授予對應數據庫的“用戶”權限來解決登錄問題,因爲SQLServer會報出“錯誤15023:當前數據庫中已存在用戶或角色“。

爲了能夠使數據庫賬號順利的賦權訪問該數據庫,可以採用Sqlserver內置的系統存儲過程sp_change_users_login來解決此問題。

解決此問題的步驟如下:

1、登錄到Sqlserver管理工具,連接服務器成功後,在新建查詢窗口輸入以下語句即可解決。

Use [數據庫名]
go
exec sp_change_users_login 'UPDATE_ONE','用戶名','登錄名'

此語句將用戶名映射爲指定的登錄名。

2、舉個例子將ADataBase數據庫中的user1用戶與登錄名user1相關聯,則可使用以下語句。

Use ADataBase
go
exec sp_change_users_login 'UPDATE_ONE','user1','user1'

擴展閱讀:Sqlserver修改默認端口號增加安全性

備註:此原創文章最早發表於自博主個人技術站點。原文鏈接:Sqlserver用戶、組或角色在當前數據庫中已存在_IT技術小趣屋

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章