Простой способ проверить подключение к SQL Server с клиента

18

В целях устранения неполадок я хотел бы иметь возможность проверить, может ли клиент подключиться к экземпляру SQL Server, независимо от приложения, которое, возможно, не может подключиться к SQL Server.

Есть ли простой способ (это означает, что нет необходимости устанавливать стороннее программное обеспечение), чтобы сделать это с помощью системных инструментов Windows по умолчанию? Возможно использование скриптов или сетевых приложений?

MicSim
источник
на моем ноутбуке я могу создать соединение sqlserver odbc и проверить доступ к sqlserver. Но я не знаю, можно ли найти драйвер sqlserver odc на всех клиентах, настроенных для доступа к sqlserver. но если он будет найден, это будет следующий тест после проверки доступности сервера sqlserver prot с помощью telnet.
чудо173

Ответы:

15

Если сервер использует TCP / IP, то простой способ состоит в том, чтобы просто подключиться к порту SQL Server и посмотреть, подключается ли он. По умолчанию это порт 1433, поэтому он должен работать:

telnet servername 1433

Это, вероятно, будет уместным в большинстве случаев.

Если он использует другой порт или динамические порты (общие для именованного экземпляра), вам необходимо определить, какой порт он прослушивает в данный момент. Проверьте диспетчер конфигурации SQL Server, чтобы увидеть, является ли это конкретным портом или динамическими портами. Если он использует динамические порты, то, если у вас нет нескольких экземпляров на сервере, netstat -abnвозможно, самый простой способ найти то, что он использует. В противном случае просмотрите журнал событий Windows или журнал ошибок SQL Server, чтобы получить сообщение о том, какой порт используется экземпляром.

Если SQL Server использует именованные каналы, то, я думаю, если вы сможете получить доступ к общим папкам на компьютере, у вас будет достаточное сетевое подключение. В этой статье говорится, что вы можете пойти дальше и попробовать подключиться к общему ресурсу IPC $:

http://msdn.microsoft.com/en-us/library/aa275787%28v=sql.80%29.aspx

net use \\servername\IPC$

Это написано для SQL Server 2000, но я не думаю, что этот аспект сильно изменился, если вообще изменился.

db2
источник
2
Не видно, может ли клиент «подключиться к экземпляру SQL Server». Это просто проверка, чтобы увидеть, слушает ли порт.
Томас Стрингер
4
... который проверяет, может ли клиентская система «подключаться к экземпляру SQL Server, независимо от приложения, которое, возможно, не может подключиться к SQL Server». Все, что не связано с сетевым подключением, связано с проблемами приложений.
db2
22

Простой метод проверки подключения SQL - создать пустой текстовый файл с расширением «UDL». Вы можете создать его в блокноте. И это может иметь любое имя. Я использую "TestSQL.UDL"

Сохраните его на рабочем столе компьютера с Windows и дважды щелкните по нему.

Появится диалоговое окно «Свойства ссылки на данные», где вы можете ввести IP-адрес сервера SQL, а также имя пользователя и пароль SQL.

Нажмите кнопку «Проверить соединение», чтобы увидеть, можете ли вы подключиться.

введите описание изображения здесь

DaveB
источник
Обязательно перейдите на вкладку «Поставщик» и выберите правильного поставщика OLE DB: «Поставщик Microsoft OLE DB для SQL Server»
DaveB
Дэйв, добро пожаловать, и хороший ответ. Вы можете отредактировать свой пост (левый нижний угол), чтобы добавить эту дополнительную информацию. Затем удалите свой комментарий.
Майкл Грин
Это действительно хороший ответ, потому что он работает практически на любом сервере, независимо от того, что или что не установлено. Все, что вам нужно, это Блокнот. Спасибо за этот замечательный ответ, который действительно помог мне убедить моего клиента в том, что SQL-соединение работает.
Робник
8

Если у вас есть Microsoft.SqlServer.Smoсборка в вашем GAC на локальном компьютере, это легко сделать с помощью PowerShell:

[Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null

$server = New-Object Microsoft.SqlServer.Management.Smo.Server("YourSqlServerName")

# do a simple operation to see if you can get data
Try {
    $server.Version | Out-Null
    Write-Host "SQL Server connection successful!!!"
}
Catch [System.Exception] {
    Write-Host "Error connecting to SQL Server..."
}
Томас Стрингер
источник