在 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’, ‘ 指标数据库已存在的用户名 ’, ‘ 创立的登录用户名 ’