如果我们的网站部署在服务器“A”上,并且用户从他的机器“B”请求该网站中的页面。我们可以从连接到“A”的数据库服务器“C”获得“B”的IP地址。 例如,在我登录时,当我验证我的用户的凭据存储在“C”中时,我们是否有任何T-SQL语句来跟踪用户的IP地址。
我可以使用ASP.Net读取IP地址,但我想知道是否可以从SQL Server本身完成。
我用Google搜索并建议使用 SYS.DM_EXEC_CONNECTIONS 。但是,当我们需要获取连接到数据库的客户端的IP地址时,这是适用的。
可能无法实现我的要求。问题是我是IT世界的新手。 我将不胜感激任何帮助或建议。
提前致谢
答案 0 :(得分:0)
SQL Server不了解或区分连接到它的不同客户端。在这种情况下,SQL Server唯一知道的客户端是Web服务器上的应用程序/脚本(A)。 Web服务器实际上从SQL Server中屏蔽了实际的最终用户B.就SQL Server而言,唯一已知的客户端是Web服务器,因为它是SQL Server连接的唯一来源。
您可以从asp.net应用程序中获取IP(如您所示)并将其传递给SQL Server。请记住,IP和标头可能很容易被欺骗。此外,大多数用户通过某些公司网络或ISP连接,因此您获得的IP几乎可以肯定来自组织用于外部连接的共享块。同一台计算机上的同一个用户可以在几分钟后再使用完全不同的IP连接,而无需执行任何操作。