問題場景
在SQL Server數據庫遷移時,在另外一臺服務器上恢復數據庫備份文件之后,需要重新創建之前數據庫上的用戶帳戶。在創建登錄用戶時,需要在User Mapping中給該用戶針對具體的數據庫進行授權,由于恢復出來的數據庫中存在同名的用戶帳戶,創建時會出現"User, group, or role already exists in the current database"的錯誤提示。詳細錯誤信息如下:
TITLE: Microsoft SQL Server Management Studio
------------------------------
Create failed for User 'testuser'.? (Microsoft.SqlServer.Smo)
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
User, group, or role 'testuser' already exists in the current database. (Microsoft SQL Server, Error: 15023)
之前的解決方法
在創建用戶帳戶(或者授權)之前,先在對應的數據庫中刪除該同名的用戶帳戶。
最新的解決方法
先創建用戶帳戶,不進行授權,然后通過下面的SQL語句將該用戶帳戶關聯至對應的數據庫用戶。優點是避免了重新授權的操作。
USE {目標數據庫} EXEC sp_change_users_login ' Update_One ' , ' {目標數據庫已存在的用戶名} ' , ' {創建的登錄用戶名} '
方法來源
SQL Server Forums - How to assign a login to an existing user?
解決SQL Server數據庫的"User, group, or role already exists in the current database"問題
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
