SqlServer2000孤立用户解决方案
?当数据库从一个地方还原到另一个地方时会出现孤立用户问题。孤立用户简单来说就是在原来数据库上的用户到了新的数据库中就找不到登录用户了。即使你建一个一模一样的登录用户,也没法与旧的用户对应上,因为sqlserver中用户是通过SID去标识一个用户的,而不是用户名。这时如果你想删掉旧用户也是办不到的,因为旧用户会占有一些对象,例如表,存储过程等,这些东西令你无法删掉它。
??? 因此我们应该先想办法把旧用户给干掉。先在要操作的数据库中建立如下存储过程,代码如下:
--检查旧用户是否存在 DECLARE owner_cursor CURSOR FOR OPEN owner_cursor CLOSE owner_cursor GO 然后转到查询分析器,执行以上存储过程: exec ChangeAllObjOwner?'olduser','dbo' ???? 建议把对象都转成是dbo的,也就是sa帐号下的,这时候就可以删除旧用户了。然后再建一个新的登录用户,对应回数据库,然后可以再执行一次上述的存储过程,把数据sa的对象转给新用户。 ????? 在转移对象时会有一定的风险,但这种风险还是可以接受的,至少我到目前为止也没遇到对象被损坏的情况,大家不妨试试。 <本文系转载自: http://gdnpc.w247.dns911.cn/article.asp?id=21>? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |