Как выполнить запрос службы SQL Browser на Java?

65
10

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


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


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


Спасибо всем.

спросил(а) 2021-01-19T21:04:13+03:00 6 месяцев, 1 неделя назад
1
Решение
78

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

ответил(а) 2021-01-19T21:04:13+03:00 6 месяцев, 1 неделя назад
63

Я закончил использование команды командной строки osql -L, чтобы перечислить все серверы в сети.

ответил(а) 2021-01-19T21:04:13+03:00 6 месяцев, 1 неделя назад
64

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

ответил(а) 2021-01-19T21:04:13+03:00 6 месяцев, 1 неделя назад
46

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

ответил(а) 2021-01-19T21:04:13+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема