问题描述:
使用SQL Server 2000企业管理器将SQL Server数据库备份还原到其它电脑后,无法使用原来的用户名登录。数据库有相应的用户名,但对应的登录名为空(孤立用户),无法登录。
解决方法:
1. 打开“SQL 查询分析器”。
2. 输入 sp_change_users_login 'report' , 执行查询(按F5),查询有哪些没有登录名的孤立用户。
3. 输入 exec sp_change_users_login 'AUTO_FIX','用户名' (根据实际用户名修改) ,再次执行查询就可以修复了(修复后的登录名和用户名相同)。
其它说明:
修复后,应用程序就马上可以使用原来的用户名登录到SQL Server数据库了,但企业管理器可能要退出并重新启动才会正常显示登录名。
如果要使用与用户名不同的登录名,可以输入 exec sp_change_users_login 'UPDATE_ONE','用户名','登录名',执行查询后会将用户名映射为指定的登录名。
也可以在任意一个数据表的SQL窗格中执行以上查询 。
SQL Server 2000 SP3(及更高版本)在执行查询 exec sp_change_users_login 'AUTO_FIX','用户名' 时会报错:
服务器: 消息 15290,级别 16,状态 1,过程 sp_change_users_login,行 166
将终止此过程。操作 'AUTO_FIX' 与其它参数值('用户名'、'(null)')不兼容。
可以改用以下方法:
1. 在企业管理器的“控制台根目录”下找到“安全性”,再右击“登录",选择”新建登录“,新建一个(与孤立用户)同名的登录名(可以使用同样的密码)
2. 打开“SQL 查询分析器”,输入 exec sp_change_users_login 'UPDATE_ONE','用户名','登录名' (登录名与用户名相同),执行查询就可以修复了。
(参考资料:http://bbs.csdn.net/topics/330068620)