您的位置:首页 > 数据库

用sp_change_users_login消除Sql Server的孤立用户

2011-09-23 12:45 302 查看
今天恢复数据遇到了点问题,通过百度之后解决了。转载此文章,以备后查。

孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。

孤立帐户的产生一般是一下两种:
1.将备份的数据库在其它机器上还原。从另一个服务器恢复数据库,登录是独立的创建的(不是从其它服务器复制过来的),这个时候创建的就是孤儿用户。

2.重装系统或SQL SERVER之后只还原了用户库

解决方法是使用sp_change_users_login来修复。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','用户名','登录名'

将用户名映射为指定的登录名。

使用ALTER USER WITH LOGIN修复孤儿登录
从SQL Server 2005 SP2开始,T-SQL的ALTER USER命令就包含了WITH LOGIN子句,这个子句通过修改数据库用户的SID为服务器登录的安全标识符修复孤儿登录,它可以同时修复Windows和SQL Server登录的功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息