問題場景
在SQL Server數(shù)據(jù)庫遷移時,在另外一臺服務(wù)器上恢復數(shù)據(jù)庫備份文件之后,需要重新創(chuàng)建之前數(shù)據(jù)庫上的用戶帳戶。在創(chuàng)建登錄用戶時,需要在User Mapping中給該用戶針對具體的數(shù)據(jù)庫進行授權(quán),由于恢復出來的數(shù)據(jù)庫中存在同名的用戶帳戶,創(chuàng)建時會出現(xiàn)"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)
之前的解決方法
在創(chuàng)建用戶帳戶(或者授權(quán))之前,先在對應(yīng)的數(shù)據(jù)庫中刪除該同名的用戶帳戶。
最新的解決方法
先創(chuàng)建用戶帳戶,不進行授權(quán),然后通過下面的SQL語句將該用戶帳戶關(guān)聯(lián)至對應(yīng)的數(shù)據(jù)庫用戶。優(yōu)點是避免了重新授權(quán)的操作。
USE {目標數(shù)據(jù)庫} EXEC sp_change_users_login ' Update_One ' , ' {目標數(shù)據(jù)庫已存在的用戶名} ' , ' {創(chuàng)建的登錄用戶名} '
方法來源
SQL Server Forums - How to assign a login to an existing user?
解決SQL Server數(shù)據(jù)庫的"User, group, or role already exists in the current database"問題
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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