SQL Server 查询:主机名
Posted
技术标签:
【中文标题】SQL Server 查询:主机名【英文标题】:SQL Server Query : Host name 【发布时间】:2016-06-24 12:33:38 【问题描述】:我有确切的查询文本以及执行查询的确切时间和日期, 如何找到执行此查询的主机名?
我使用的是 SQL Server 2008。
【问题讨论】:
当你说主机名时,你是在想Web Server吗? 你想要SELECT @@SERVERNAME
吗?
我猜 OP 需要执行查询的机器的主机名。
你也可以使用Sql profiler。
【参考方案1】:
你需要@@SERVERNAME
SELECT @@SERVERNAME
将返回执行查询的服务器名称。
HOST_NAME
将返回工作站名称
SELECT HOST_NAME()
【讨论】:
这个我们肯定知道,我问的是执行这个查询的主机名或计算机名【参考方案2】:没有任何表包含有关执行查询的主机的历史信息 - http://www.sqlservercentral.com/Forums/Topic1334479-146-1.aspx
【讨论】:
之前写的查询给出最有可能准确的结果 关键是sys.dm_exec_requests
返回有关正在执行的请求的信息,而master.dbo.sysprocesses
包含有关正在运行的进程的信息。
sql server admin能知道这些信息吗?
我认为他们不会这样做,除非您当时运行了分析器。【参考方案3】:
您可以使用 HostName() 作为检查
SELECT HOST_NAME() AS HostName, SUSER_NAME() LoggedInUser
http://blog.sqlauthority.com/2009/05/26/sql-server-find-hostname-and-current-logged-in-user-name/
或
SELECT @IP_Address = client_net_address
FROM sys.dm_exec_connections
WHERE Session_id = @@SPID;
How to get the client IP address from SQL Server 2008 itself?
How to identify the caller of a Stored Procedure from within the Sproc
【讨论】:
【参考方案4】:我相信这是您将得到的最接近的结果:
select host_name()
正如docs 中提到的:“客户端应用程序提供了工作站名称,并且可能提供不准确的数据。不要依赖 HOST_NAME 作为安全功能。”
【讨论】:
这会给我我的主机名,请再次阅读问题 我不是在询问我的主机名,请再次阅读问题 @ShahimKhlaifat 您是否在服务器本身上执行查询?如果您正在浏览网络应用程序,则 host_name() 将返回网络服务器。 从 SQL Server 2016 开始 Host_Name() 将返回工作站的名称。在此之前,我认为它返回了一些不太有用的东西。以上是关于SQL Server 查询:主机名的主要内容,如果未能解决你的问题,请参考以下文章