1

我需要根据 IP 地址列表或范围在本地 LAN 上扫描和定位SQL Server 实例,我正在寻找以下信息:

  1. sql server 正在侦听的端口(常规为1433/1434,但可以更改),
  2. 机器的IP地址
  3. 运行 sql server 的机器的主机名,
  4. 实例版本如10.5.2500.0
  5. 实例名称信息,例如Joe\SQLExpress

我将无权访问 Windows 或 sql 服务器的任何凭据。赌注是使用 Windows 身份验证,但我更喜欢基于发现的方法。此外,我不想在扫描期间发出错误警报,并且扫描必须是非侵入性的。扫描必须执行几个漏洞测试(稍后),这将涉及检查和进一步的信息,因此不需要每个服务器的任何访问凭据。

此外,某些实例可能已禁用SQL Server Browser 服务或已停止SQL Server 代理服务。

我需要能够查询给定 IP 地址范围的所有 SQL Server 实例。我一直在尝试在这里使用参数:

  1. 这里

  1. 这里

基于 AC# 的解决方案也可以提供帮助,只要它返回所有实例,无论 SQL Server Browser 或 SQL Server 代理是否正在运行。

但我希望我的扫描尽可能不打扰。

4

1 回答 1

1

对于 SQL Server 2005 及更高版本,有一种使用 WMI 的文档化且受支持的方式,请参阅常见问题解答:使用 WMI 检测 SQL Server 2005。这将检测任何已安装的实例,无论是否正在运行,并且不会打开与 SQL Server 本身的任何连接。当然,它需要适当的权限才能查询远程机器WMI。

对于 SQL 2000,唯一的方法是使用不受支持的注册表黑客(查找特定键)。

于 2013-01-09T20:49:34.663 回答