业精于勤荒于嬉,行成于思毁于随。

mssql孤立用户问题导致td移植失败

上一篇 / 下一篇  2008-09-22 22:36:05 / 个人分类:点点滴滴

在进行td数据移植(将td服务器及数据库转移到另一台电脑)后,出现一个项目很正常,另一个项目却怎么也无法进入,我看了数据库链接字符串,两个项目一样,但在检测数据库链接的时候就不一样了。我进入mssql,查看,偶然间发现一个细微的不同,正常的那个项目数据库中td用户名的登陆名也为td,而另一个有问题的项目数据库中那个td帐户的登陆名却为空,我想问题就出在这里了。

   通过百度了解到了这个问题为孤立用户问题,此问题出现在数据库的移值上。移值后,数据库的登陆名和数据库用户名孤立,原数据中,用建立的用户名密码登陆可以访问数据库,但是移值后就不能访问了。而且如果您尝试向该登录帐户授予数据库访问权限,则会因该用户已经存在而出现以下错误信息:‘该登录已经在另一个用户名下拥有帐户’。
   产生错误的原因是:在您向目标服务器传输登录帐户和密码后,您的用户可能还无法访问数据库。登录帐户与用户是靠安全识别符   (SID)   关联在一起的;在您移动数据库后,如果   SID   不一致,SQL   Server   可能会拒绝用户访问数据库。此问题称为孤立用户。如果您使用  SQL   Server   2000   DTS   传输登录功能来传输登录帐户和密码,就可能会产生孤立用户。此外,被允许访问与源服务器处于不同域中的目标服务器的集成登录帐户,也会导致出现孤立用户。

通过以下几步就可以解决这个问题

1 首先查找孤立用户(在查询分析器中输入) 

exec   sp_change_users_login   'Report' 

2 为指定用户关联登陆名

exec sp_change_users_login 'update_one'' td''td'

 


TAG: 点点滴滴

引用 删除 cheneych   /   2009-10-19 15:59:09
太有用了,非常感谢!
 

评分:0

我来说两句

Open Toolbar