程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何解決SQL Server數據庫的"User, group, or role already exists

如何解決SQL Server數據庫的"User, group, or role already exists

編輯:關於SqlServer

問題場景

在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?

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved