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