7

我需要清楚地看到什么 IP 地址对 SQL 服务器进行了什么 sql 查询。我正在尝试使用 SQL Profiler,但似乎我无法以某种方式区分查询来自的机器(浏览器)。它只有 web server 和 sql server 之间的通信细节。我有什么方法(任何未知的日志?)可以让我看到查询来自的原始机器的标识吗?

感谢您的任何建议。

高频

4

6 回答 6

6

您可以获取当前连接的主机名,或者从sysprocesses表中获取任何信息

SELECT hostname FROM sys.sysprocesses WHERE spid = @@SPID

如果这是您要查找的内容,这显然无法获取网络主机的 IP 地址。

于 2009-11-04T16:00:16.523 回答
4

就像@joshperry 所说,您可以使用检索客户端地址和服务器地址

SELECT client_net_address, local_net_address 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID
于 2016-09-26T14:11:21.303 回答
3

就 SQL Server 而言,请求将始终来自您的网络服务器。您需要在 Web 应用程序中捕获并记录 IP 地址。

于 2009-11-04T15:51:28.990 回答
1
SELECT r.client_net_address,sqltext.Text
  FROM sys.dm_exec_requests req left join sys.dm_exec_connections as r on req.session_id=r.session_id
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
于 2017-03-08T10:10:38.360 回答
0

如果您不在应用程序中编写代码以将客户端地址从 Web 服务器传递到数据库,您将不得不查看 Web 日志 - 它们将提供客户端的 IP 地址。

于 2009-11-04T15:50:19.087 回答
0

SELECT * FROM sys.dm_exec_connections返回有关与此 SQL Server 实例建立的连接的信息以及每个连接的详细信息 ( https://msdn.microsoft.com/en-us/library/ms181509%28v=sql.120%29.aspx )

于 2016-01-05T17:54:47.820 回答