By MBPDLPayday Loans

解决MS SQL数据库孤立用户问题

新导入的数据库由于sysusers系统表缺失而导致数据库用户无法匹配到login user, 从而原有的账号无法使用, 重新创建也会因user name重名而报错.

查了一下MSDN, 可以用sp_change_users_login系统存储过程来修改, 但是直接对着一个刚刚restore的数据库用命令:

sp_change_users_login ‘AUTO_FIX’, ‘USERNAME’

报错

Msg 15600, Level 15, State 1, Procedure sp_change_users_login, Line 207
An invalid parameter or option was specified for procedure ‘sys.sp_change_users_login’.

存储过程207行是这样的:

if @Password IS Null
begin
raiserror(15600,-1,-1,’sys.sp_change_users_login’)
deallocate ms_crs_110_Users
return (1)
end

嗯, 仔细想想也不对, 再AUTO的命令, 系统里的用户也没法凭空创建出来, 再回头往下翻MSDN, 解了:

EXEC sp_change_users_login ‘AUTO_FIX’, ‘USERNAME’, NULL, ‘PASSWORD’

Leave a Reply