【发布时间】:2012-04-14 00:38:05
【问题描述】:
我有一个插入/更新/删除触发器。那工作正常。此外,我需要进行更改的客户端 IP 地址。我需要在 T-SQL 中,这意味着,不是在任何 Web 表单中,而是在 SQL/T-SQL 中,而我的触发器将被触发。
我还仔细研究了一下,发现主数据库中有一个名为xp_cmdshell 的存储过程,当使用ipconfig 执行时,我们可以获得IP 地址。我认为这仅在您对数据库具有管理访问权限时才有效。我的主机是共享主机,所以我没有这样的特权。还有其他出路吗?
请注意:我没有 SQL Server 2008 数据库的管理权限。作为经过身份验证的用户,我需要一个解决方案。
另一个更新:
我已经找到了解决方案,适用于我的场景的查询是
SELECT hostname, net_library, net_address
FROM sys.sysprocesses
WHERE spid = @@SPID
它根据需要执行,但只有一个问题,net_address 不是 IP 格式。以下是我的结果:
hostname net_library net_address
IPC03 TCP/IP AE8F925461DE
我很想知道:
-
这里的 net_address 是什么?是 MAC 地址还是某个 IP 地址等?
-
有没有办法将net_address转换为ip?
【问题讨论】:
-
您提到您的数据库是托管的,但应用程序是如何工作的?在大多数 ASP.NET 应用程序中,用户连接到网站,然后网站连接到数据库。所以数据库服务器不知道“真正的”最终用户是谁或在哪里。如果您可以提供有关您的应用程序以及用户如何连接到数据库的更多详细信息,可能会有人提出建议。
-
您可以在msdn.microsoft.com/en-us/library/ms179881.aspx 找到关于net_address的详细信息
标签: asp.net .net sql sql-server sql-server-2008