我有插入/更新/删除的触发器。这工作正常。另外,我需要客户的IP地址进行更改。我需要在T-SQL中,这意味着,不是以任何Web形式,而是在SQL/T-SQL中,而我的触发器将被解雇。如何从SQL Server 2008本身获取客户端IP地址?
另外我走了一步,并得到了主数据库中名为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吗?
小小的要求:
接听/评论/ downvoting之前,我想请你去通过这个问题,第一,彻底。我发现有些人没有正确处理问题就发表评论/低调。没有问题,每个人都会犯错误。但并非每次都会犯错。 :)
您提到您的数据库已托管,但该应用程序如何工作?在大多数ASP.NET应用程序中,用户连接到网站,然后网站连接到数据库。所以数据库服务器不知道谁是'真正'的最终用户。如果您可以提供一些关于您的应用程序以及用户如何连接到数据库的详细信息,则可能会有人提出建议。 – Pondlife 2012-03-30 10:35:39
你可以在http://msdn.microsoft.com/en-us/library/ms179881.aspx找到关于** net_address **的详细信息 – 2012-03-30 14:40:18