计算机学习积累

----转载有理,转载是想研究,想研究才会看,看了才会有感想,转载后我有时会写一些自己的感受
数据加载中……

如何解决孤立用户问题

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

   产生错误的原因是:
            在您向目标服务器传输登录帐户和密码后,您的用户可能还无法访问数据库。登录帐户与用户是靠安全识别符   (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 阅读(1846) 评论(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 '
应该就没问题了
2007-08-17 09:56 | freebird

只有注册用户登录后才能发表评论。


网站导航: