SQL Server 2005中还原数据库后,提示用户或组已经存在的问题解决
- 13 四月, 2011 //
- 系统与网络 //
- Tags :
- 0 Comments
问题背景与现象:
1.Sql server 2005服务器,还原了一个来自Sql server2000备份的数据库备份文件
2.这个还原操作自动生成了相应的数据库用户(原来数据库已有的),假设为user1
3.在SSMS中建立对应的登录名时,提示用户或组已经存在,在数据库——安全性——用户 节点下也无法删除
4.直接使用这个user1登录SSMS,提示无法登录,没有默认数据库
5.修改这个用户的属性,设置默认数据库,保存时提示“要有登录名”
%¥#%……%@ 汗!
问题根源:
经查资料,这个是Sql server里的“孤立用户”,就是说其登录名没有和数据库的用户名对应起来,这个操作在SSMS里是实现不了的,要么提示无法登录,要么提示已经存在,必须要用一个存储过程来处理
处理方法:(来自http://www.chr114.coms/20110105/09311428.shtml)
新建一个查询,输入
Use 数据库
go
sp_change_users_login ‘update_one’, ‘登录用户名’, ‘用户名’
解释一下参数:
目的让”登录用户名’” 与 ‘用户名’ 联系起来
update_one, 表示只对一个用户进行操作
登录用户名’与’用户名’, 则分别是SQL Server的登录名与数据库中的用户名
sp_change_users_login的更详细的用法可以参考SQL Server的联机帮助, SQL Server 2005的在此, SQL 2000的链接不方便做成链接的形式, 各位可以自己到联机丛书的索引中找一下.
例子:
–Use dbname
–go
–sp_change_users_login ‘update_one’, ‘sa, ‘sa’


