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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6