我们最近应应用程序所有者的要求禁用了其中一台生产服务器上的一个 SQL 帐户,该帐户显然不再使用。禁用后,我们在 SQL 错误日志中看到登录失败。见下图。
应用程序团队无法找到使用它的进程并已将其发回给我,我在 sys.sysprocesses sys.dm_exec_sessions sys.dm_exec_connections 中看不到任何内容
sp_whosisactive 也没有捕获任何正在运行的代码。我觉得它几乎是一个来自应用服务器的心跳进程,每两分钟检查一次以确保服务器正常运行。
还有其他方法可以捕获活动吗?分析器不是一个快速而简单的选择,因为这个服务器非常不稳定。我们也在深入研究应用程序端的日志。
由于该帐户(登录名)已被禁用 - 您自然不会在该登录名中看到任何内容
sys.sysprocesses
sys.dm_exec_sessions
sys.dm_exec_connections
,在 sp_whoisactive 中也是如此。您手上有证据 - 错误日志中的记录表明正在进行连接尝试(登录失败)的服务器的客户端 IP。
尝试在数据库服务器中运行以下查询,它会显示失败的登录信息并附上详细信息。它有助于发现应用服务器 (10.xxx) 上进程的 ClientProcessID,该 ID 可指向正在进行登录尝试的应用/网站:
有关登录失败的更多信息,请访问:https: //eitanblumin.com/2020/03/09/finding-details-missing-sql-server-failed-logins-audit/
您还可以使用 GrepWin 等工具扫描应用服务器(10.xxx)上的所有文件(配置、代码),以找出哪些文件包含已禁用帐户的连接字符串。