当前位置:首页 > 知道中心 > SQL Server > 文章

mssql处理孤立帐户方法

发表于:2013-09-08| 次阅读| 作者:藕码网
TAG: MSSQL
摘要:mssql处理孤立帐户方法
孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。
将备份的数据库在其它机器上还原,或将分离的数据库在其他机器上附加,一般会出现孤立帐户。

当数据库有与登录名同名的孤立账户时,会导致登录名属性里无法添加数据库访问,无法给数据库加账户权限。

一下方法在mssql2000上测试,不一定适用于mssql2005,仅供大家参考

解决方法一:
删除数据库里的用户。然后就可以正常添加了。
如果删除不成功,提示"因为选定的用户拥有对象,所以无法除去该用户",说明数据库中的某些表、视图或存储过程的所有者为该用户。可以将这些对象的所有者都改为dbo,然后就可以删除用户了。不过这样修改了数据库,可能会导致程序访问时出现问题。不推荐。

修改单个对象所有者的方法
exec sp_changeobjectowner '原所有者.原对象名','新所有者'
表也可以在企业管理器,设计表-->管理约束-->表-->里面可以修改所有者

修改2005数据库表对象架构为dbo的方法
alter schema dbo transfer 架构名.表名

解决方法二:
使用sp_change_users_login存储过程建立关联
用法1:
exec sp_change_users_login 'REPORT'
列出当前数据库的孤立用户

用法2:
exec sp_change_users_login 'AUTO_FIX','用户名'
可以自动将用户名所对应的同名登录添加到syslogins中。也就是在还没有同名登录的情况下建一个同名登录,然后关联上。推荐用此方法。

用法3:
exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'
可以将用户名与一个已存在的登录名关联,推荐用此方法。


注:本站部分信息可能源于互联网分享,如有侵权,请告知,我们将及时删除!

  • 用户评论
  • 相关文章