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 查询:主机名的主要内容,如果未能解决你的问题,请参考以下文章

zabbix api 获取所有主机名

指定 SQL Server 连接的端口

sql server 2008 无法链接,急求,谢谢各位大侠

DNS正反解析查询指令hostdignslookup

如何使用 nginx 将数百个主机名重定向到其他主机名

markdown 如何重命名Ubuntu Server 16主机名?