我会尽力描述情况,而我们一直在努力解决这个问题:
我们有这个 SQL 登录 [LA],它在 sql 错误日志 [从各种应用程序建立的连接] 中显示主体服务器上的成功连接。此登录在其镜像服务器上也显示成功连接。
现在,这是另一个登录名 [LB],它在主服务器上成功连接,但在镜像服务器上连接失败。[同上登录LA连接的应用]
故障排除完成:
在两台服务器上运行 sp_help_revlogin 并匹配登录 [LB] 的散列密码。因此,就主体和镜像的 SQL 登录而言,确认此登录的密码相同。
两台服务器的登录 SID 相同,因此这也不成问题。
应用程序使用相同的凭据在主体上连接成功,但在镜像服务器上显示登录失败。
由于某些原因导致登录尝试失败,因此登录一直被锁定。
在将此作为应用程序问题传递给应用程序所有者之前,我作为 DBA 还可以检查什么?
请帮我排查问题的根源,谢谢。
如果登录被锁定,则表示密码不正确。服务器记录的登录密码不正确,或者客户端提供的密码错误。
由于这是一个镜像环境,我敢打赌客户端对这两个实例使用相同的密码;这意味着登录镜像的密码与登录主服务器的密码不同。
使用已知正确的密码(即不是散列版本)在镜像服务器上重新创建登录。
确保您从此查询中获得正确的 sid(使用复制和粘贴),针对主体服务器运行:
CREATE LOGIN
在您在镜像上运行的语句中使用该 sid :sid 之所以重要,是因为它将登录链接到数据库内的用户。