我有一个插入/更新/删除触发器.这工作正常.此外,我需要客户端的IP地址来进行更改.我需要在T-SQL中,这意味着,不是在任何Web表单中,而是在SQL/T-SQL中,而我的触发器将被触发.
我也去了,并得到了master数据库中存储的程序xp_cmdshell,当执行时ipconfig我们可以得到IP地址.我认为这只有在您拥有数据库的管理权限时才有效.我的托管是一个共享托管,所以我没有这样的特权.还有其他出路吗?
请帮忙
提前致谢
请注意:我的SQL Server 2008数据库没有管理权限.我需要一个经过身份验证的用户的解决方案.
另一个更新:
我有解决方案,对我的方案有用的查询是
SELECT hostname, net_library, net_address
FROM sys.sysprocesses
WHERE spid = @@SPID
Run Code Online (Sandbox Code Playgroud)
它根据需要执行,但只有一个问题,即net_address不是IP格式.以下是我的结果:
hostname net_library net_address
IPC03 TCP/IP AE8F925461DE
Run Code Online (Sandbox Code Playgroud)
我很想知道:
什么是net_address?是MAC地址还是某些IP地址等?
有没有办法将net_address转换为ip?
谦虚的要求:
在回答/评论/ downvoting之前,我会要求你首先彻底解决这个问题.我发现有些人在没有正确处理问题的情况下进行了评论/评论.没有问题,每个人都会犯错误.但不是每次都犯错误.:)
我有一个已弃用的存储过程,不应再从代码中调用,但有一些系统仍在调用它.这是一个生产服务器,因此我对它进行非常有限的间接访问以执行诊断.
有没有办法确定从sproc中调用特定存储过程的机器?诸如@@ CallingMachineIP或@@ CallingMachineName之类的东西