SQL Server 2005中还原数据库后,提示用户或组已经存在的问题解决

问题背景与现象:

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’

 

Posted By admin

Leave a Reply