2007-04-19

MSSQL数据库移植后的用户权限问题

把数据库备份还原到另一个服务器时,可能会遇到孤立用户的问题
举例:数据库test有用户U_tom,对应的登录帐户为L_tom,按以下步骤操作将会出现孤立用户U_tomf:

备份test->删除数据库test->删除登录L_tom->还原test

查看:
1、企业管理器->展开要查看的数据库->用户 ,会发现相应的用户没有对应的登录
2、在查询分析器中执行 EXECsp_change_users_login @Action='Report'

解决:
办法一、自动新增一个和用户名相同的登录帐户,并影射
EXEC sp_change_users_login 'Auto_Fix', 'U_tom'

办法二、新增一个登录帐户,然后将此登录帐户映射到孤立的用户
EXEC sp_addlogin 'L_tom'
--Change the user account to link with the 'L_tom' login.
EXEC sp_change_users_login 'Update_One', 'U_tom', 'L_tom'

或者:
1、找到该用户的ID 例如:
select sid from sysusers where name='U_tom'
结果为
0x67E19EC564D7344CB19AC35085C1A36B

2、新增一个登录帐户L_tom,将此登录帐户映射到孤立的用户
EXEC sp_addlogin @loginame = 'L_tom',
@sid = 0x67E19EC564D7344CB19AC35085C1A36B

参考:sp_change_users_login 、sp_addlogin 的语法参考

0 comments: