Как запросить службу браузера SQL из Java? - PullRequest
1 голос
/ 09 февраля 2010

Это может быть простой вопрос, но я попытался найти его и не смог найти ответ.

Мне нужно составить список всех серверов SQL в сети. Это очень легко сделать с помощью .NET Framework (System.Data.Sql.SqlDataSourceEnumerator), но есть ли относительно простой способ сделать это и в Java? Пока я занимался исследованиями, я столкнулся с возможностью прослушивания в разных портах, но это казалось не удобным для пользователя.

Мне сказали использовать службу браузера SQL, но а) я не смог найти никакой информации о том, как вызвать его из Java, и б) автоматически ли загружается эта служба при загрузке SQL Server? Могу ли я предположить, что каждый компьютер в сети, который я ищу, имеет доступ к этой службе браузера? А если нет, то имеет ли это значение для моего кода?

Большое вам спасибо.

Ответы [ 4 ]

2 голосов
/ 09 февраля 2010

Вы можете использовать функцию SQLBrowseConnect из ODBC API .

1 голос
/ 11 февраля 2010

В итоге я использовал команду osql -L командной строки для вывода списка всех серверов в сети.

1 голос
/ 09 февраля 2010

Вы можете вызывать COM-компоненты из java (с соответствующим образом созданным IDL), чтобы вы могли использовать DMO или SMO (в зависимости от вашей версии SQL Server)

0 голосов
/ 11 февраля 2010

Я обнаружил, что довольно легко найти все службы SQL (при условии соответствующего уровня разрешений), перечисляя службы Windows на серверах, использующих WMI. Это «ловит» различные наборы служб SQL Server, такие как службы отчетов и службы анализа, которые не являются реляционным механизмом, а также службы, которые не работают в данный момент. Я использую это для аудита лицензий через PowerShell. Так что, если это кажется полезным, вопрос в том, как вызвать WMI из Java. Этот чувак: http://www.vijaykandy.com/archives/121 составил список некоторых опций.

...