这可能是一个基本问题,但我尝试使用Google搜索并找不到答案。
我需要列出网络上的所有SQL Server。这很容易使用.NET框架(System.Data.Sql.SqlDataSourceEnumerator),但是在java中也有一种相对简单的方法吗?在我进行研究的过程中,我偶然发现了在不同端口进行监听的可能性,但这似乎不是用户友好的。
我被告知使用SQL浏览器服务,但是a)我找不到有关如何从java调用它的任何信息,以及b)下载SQL Server时是否会自动下载此服务?我可以假设我正在搜索的网络上的每台计算机都可以访问此浏览器服务吗?如果没有,这会对我的代码产生影响吗?
非常感谢你们。
答案 0 :(得分:2)
答案 1 :(得分:1)
答案 2 :(得分:1)
我最终使用命令行的osql -L
命令列出网络上的所有服务器。
答案 3 :(得分:0)
通过使用WMI枚举服务器上的Windows服务,我发现很容易找到所有SQL服务(假设适当的perms级别)。这会“捕获”不同的SQL Server套件服务,例如不是关系引擎的Reporting Services和Analysis Services,以及目前尚未运行的服务。我通过PowerShell将其用于许可审计。所以,如果这似乎有用,那就是如何从Java调用WMI的问题。这个家伙:http://www.vijaykandy.com/archives/121列出了一些选项。