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

作者:fbysss
msn:jameslastchina@hotmail.com 
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进行修改之后,删除用户再建立用户的方式来得方便很多,也不容易出错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值