修复不能登录的SQL Server账户
起因
早上收到一封邮件说一直使用的好好的SQL数据库只读账户突然不能使用了。 给了截图报登录4064错误。
过程
- 登录服务器,检查该账户的状态,发现是正常的。
- 检查SQL的日志,发现从昨晚凌晨3:40分开始,该账户从一台机器不断的登录SQL数据库,但是都是验证失败错误。
- 告诉这台机器的使用人,关闭这台不断连接的机器对数据库服务器的连接
- 修改该账户的密码和重新设定只读
- 集群模式下,在secondary的机器上修改成功
- 但是在primiary机器上面,提示该账户已经存在,无法修改
- 怀疑是集群在切换后,导致了这种问题
- 先解决问题
use [database] exec sp_change_users_login 'AUTO_FIX','username' go
上面的语句是用于修复孤立账户的。 正确的执行后会输出下面的语句:
The row for user will be fixed by updating its login link to a login already in existence.
The number of orphaned users fixed by updating users was 1.
The number of orphaned users fixed by adding new logins and then updating users was 0.