我如何从我的 Server 2003 框中追踪正在调用 SQL Server 的内容?

我如何从我的 Server 2003 框中追踪正在调用 SQL Server 的内容?

我有一台 Windows Server 2003 计算机,我正试图将其停用,但我的 SQL Server 团队告诉我,仍有来自这台计算机的呼叫传到 SQL Server 计算机。我已关闭所有设备(我能想到的),但显然仍有设备在呼叫。

我如何跟踪/查找调用 SQL Server 计算机的服务/应用程序?

答案1

以下是一些想法:

如果程序打开了持久连接,您将在以下位置看到进程 ID(右列):

netstat -a -n -o | find "TCP" | find "1433"

(假设它连接到目标服务器上的默认实例,TCP 端口 1433。)您也可以将目标服务器的 IP 放入其中代替 1433。

如果是间歇性的,使用 netstat 捕获它会比较困难。进程监控可以给你一个长期的追踪,可能会告诉你一些东西。

您的 SQL Server 管理员可以在他们的终端运行 SQL 跟踪并查看要连接的应用程序,但这不一定准确。

答案2

除了已有的好答案之外,还可以在分析器并查看正在运行的 SQL 语句。这应该会给你一个很好的线索,让你知道是什么试图访问你的数据库。

如果您没有运行 SQL,那么是否有其他程序尝试访问服务器并不重要 - 您仍然可以关闭 SQL 服务器。

如果你需要知道还有哪些其他网络调用,请安装wireshark并观察它们的发生过程。

答案3

让 SQL Server 团队使用类似以下的查询进行检查。这将为您提供有关执行此操作的进程的更多信息:

SELECT conn.connect_time, conn.client_net_address,
  sess.login_time, sess.HOST_NAME, sess.program_name, sess.login_name
FROM sys.dm_exec_connections conn
  INNER JOIN sys.dm_exec_sessions sess
    ON conn.session_id = sess.session_id;

答案4

相关内容