MSSQL Server 错误 21002:[SQL-DMO]用户"user"已经存在
问题:
在利用企业管理器使用向导新建一个登录,并且在“数据库访问”选项下面赋予这个登录访问某个数据库的权限,遇到如下错误信息:
错误 21002:[SQL-DMO]用户"user"已经存在。
分析和解答:
这个错误一般会发生在将数据库从一台服务器迁移到另一台服务器之后,如果在新的服务器里面找不到某一个用户对应的登录,就会发生“孤立用户”的问题。此时,尽管在新的服务器里面没有这个登录,而在该数据库的sysusers表中,却存在该登录对应的用户信息,因此SQL Server会给出以上的错误信息。
解决步骤如下:
(1)新建一个同名的登录,但是不要赋予它任何数据库的访问权限。
(2)使用以下命令使该登录与该用户对应在一起:
exec sp_change_users_login 'Update_One','用户','新建登录名'