SqlServer2000数据库迁移"用户已存在"问题解决

作者:fbysss
msn:[email protected] 
blog:blog.csdn.net/fbysss
声明:本文由fbysss原创,转载请注明出处 
关键字:sqlserver数据库用户,关联缺失
背景:数据库从另外一台服务器备份之后还原,发现程序中登录数据库失败。
排查:发现"安全性"->"登录"中的数据库用户与数据库没有关联,但是手工再关联,却报出错误21002:[sql-dmo]用户***已经存在的异常信息。而删除该数据库用户也无法进行,因为它已经是一些表的owner(否则,这么做也可以解决问题)。
解决:
(1)在企业管理器中点击SQL服务器根节点,右键->属性->服务器设置->允许对目录结构进行直接修改,打勾,确定。
(2)在数据库中找到sysusers表,删除name=[yourdbuser]的记录即可。如果不做第一步,会报出“ 未启用对系统目录的特殊更新。系统管理员必须重新配置SQL Server 以允许这种操作”的错误。
(3)再到"安全性"->"登录"中建立用户与数据库的关联。
(4)重新设置SQLServer,把“允许对目录结构进行直接修改”前面的勾去掉。
小结:至于数据库还原之后用户与数据库的关联为何缺失,暂时没找到根本原因,不过这种方式相对于使用sp_changeobjectowner来对表、视图等对象的owner进行修改之后,删除用户再建立用户的方式来得方便很多,也不容易出错。

你可能感兴趣的:(sql,sql,数据库,server,Blog,服务器,sqlserver)