• 欢迎访问水熊虫网站,这里是我个人的工作博客,内容大多是遇到问题完善后,会在这里进行总结归纳内容! QQ群
  • 网站导航中的友情链接专栏上线,更新的都是自己这三年整理的一些东西,感兴趣可以看看!
  • 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经!

“用户、组或角色'XXX'在当前数据库中已存在”问题

MSSQL WaterBear 5年前 (2019-06-20) 746次浏览 已收录 扫描二维码

一般在还原数据库后,给这个数据库添加一个登录名时出现。

例如数据库备份文件中已经包含了用户abc,现在还原了数据库,然后发现现有数据库中没有abc这个用户,想要新建一个abc用户,作为该数据库的owner,便会出现这个问题。

http://blog.csdn.net/cjh200102/article/details/8669166 这篇文章做了详细的介绍。

可以理解为登录名和用户是两个不同的概念,虽然名称相同。在新建登录名的时候,如果不添加该数据库映射则不会报错。

添加数据库映射相当于给该数据库添加一个同名用户。但是已经存在了abc这个用户了,所以此时会报错。

可以通过以下方法解决该问题。

1.新建一个abc登录名,但是不要添加数据库映射。
2.在SQL Server Management Studio中, 右键选择“数据库”>“新建查询”
输入以下sql脚本:

Use [数据库名]
go
sp_change_users_login 'update_one', 'XXX', 'XXX'

接着执行脚本即可。
 
注:其中update_one是存储过程的参数,表示只处理一个用户,前一个XXX是“用户”,后一个XXX是“登录”,以上这个SQL表示将服务器登录“XXX”与数据库用户“XXX”重新关联。


WaterBear , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:“用户、组或角色'XXX'在当前数据库中已存在”问题
喜欢 (0)
[[email protected]]
分享 (0)