如何解决孤立用户问题

如何解决孤立用户问题

    此问题出现在数据库的移值上。移值后,数据库的登陆名和数据库用户名孤立,原数据中,用建立的用户名密码登陆可以访问数据库,但是移值后就不能访问了。而且如果您尝试向该登录帐户授予数据库访问权限,则会因该用户已经存在而出现以下错误信息:     ‘该登录已经在另一个用户名下拥有帐户’。

   产生错误的原因是:
            在您向目标服务器传输登录帐户和密码后,您的用户可能还无法访问数据库。登录帐户与用户是靠安全识别符   (SID)   关联在一起的;在您移动数据库后,如果   SID   不一致,SQL   Server   可能会拒绝用户访问数据库。此问题称为孤立用户。如果您使用  SQL   Server   2000   DTS   传输登录功能来传输登录帐户和密码,就可能会产生孤立用户。此外,被允许访问与源服务器处于不同域中的目标服务器的集成登录帐户,也会导致出现孤立用户。 

   以下是解决办法:
            1.查找孤立用户。在目标服务器上打开查询分析器,然后在您移动的用户数据库中运行以下代码:   exec   sp_change_users_login   'Report' , 查找到后执行
Use   lk96160
go 

sp_change_users_login   ' update_one ' ,  ' lk96160 ' ,  ' lk96160 '
一般问题就会解决。
            2.如果一个用户是孤立用户,数据库用户可以成功登录到服务器,但却无权访问数据库。如果您尝试向该登录帐户授予数据库访问权限,则会因该用户已经存在而出现以下错误信息:     
  
Microsoft   SQL - DMO   (ODBC   SQLState: 42000 )   Error    15023 : User     or    role    ' %s '    already    exists     in    the    current     database .
  或是登陆名对应该的用户改成了dbo,则在sa下执行一下以下代码:
exec    sp_changedbowner    ' sa '  
然后再执行:
Use   lk96160
go 

sp_change_users_login   ' update_one ' ,  ' lk96160 ' ,  ' lk96160 '
一般问题就会解决了。

posted on 2007-07-31 14:49 freebird 阅读(722) 评论(2)  编辑  收藏 所属分类: 数据库

评论

# re: 如何解决孤立用户问题   回复  更多评论   

老大: 
我按你说的方法解决我这个问题,在执行 
EXEC sp_change_users_login 'update_one', 'bh3c_f', 'bh3c_f' 
时,报错: 
服务器: 消息 15063,级别 16,状态 1,过程 sp_change_users_login,行 104 
该登录已经在另一个用户名下拥有帐户。 


请老大指教! 
我的msn: wd3w@163.com
2007-08-10 14:22 |  wd3w

# re: 如何解决孤立用户问题 [未登录]  回复  更多评论   

@wd3w 

服务器: 消息 15063,级别 16,状态 1,过程 sp_change_users_login,行 104 
该登录已经在另一个用户名下拥有帐户。 
出现这个错误的问题,文章里面也有了: 
先执行一下这个: 
exec sp_changedbowner ' sa ' 
然后再执行 
Use lk96160 
go 
sp_change_users_login ' update_one ' , ' lk96160 ' , ' lk96160 ' 
应该就没问题了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值