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


18

З метою усунення несправностей я хотів би мати можливість перевірити, чи може клієнт підключитися до екземпляра SQL Server, незалежно від програми, яка, можливо, не може підключитися до SQL Server.

Чи є простий спосіб (це означає, що не потрібно встановлювати сторонне програмне забезпечення) зробити це за допомогою системних інструментів Windows за замовчуванням? Можливо, за допомогою сценаріїв або мережевих додатків?


я можу створити з'єднання sqlserver odbc і перевірити доступ до sqlserver. Але я ні, ні, якщо драйвер odc sqlserver можна знайти у всіх клієнтів, налаштованих на доступ до sqlserver. але якщо її вдасться знайти, це буде наступним тестом після перевірки доступності сервера sqlserver prot з telnet.
чудо173

Відповіді:


15

Якщо сервер використовує TCP / IP, то найпростішим способом є просто телнет до порту SQL Server і перевірити, чи він підключається. За замовчуванням це порт 1433, тому це має працювати:

telnet servername 1433

Це, мабуть, буде доречно в більшості випадків.

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

Якщо SQL Server використовує іменовані труби, я вважаю, що якщо ви можете отримати доступ до спільних ресурсів на пристрої, у вас є адекватна мережа. У цій статті йдеться про те, що ви можете піти далі та спробувати підключитися до IPC $ share:

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

net use \\servername\IPC$

Це написано для SQL Server 2000, але я не думаю, що цей аспект сильно змінився, якщо він взагалі.


2
Це не бачить, чи може клієнт "підключитися до екземпляра SQL Server". Це просто тестування, щоб перевірити, чи слухає порт.
Томас Стрінгер

4
... що бачить, чи клієнтська система "може підключитися до екземпляра SQL Server, незалежно від програми, яка, можливо, не може підключитися до SQL Server". Все, що виходить за межі підключення до мережі, стосується проблем із додатками.
db2

22

Простий метод тестування підключення SQL - це створення порожнього текстового файлу з розширенням файлу "UDL". Ви можете створити його в Блокноті. І воно може мати будь-яку назву. Я використовую "TestSQL.UDL"

Збережіть його на робочому столі ОС Windows і двічі клацніть по ньому.

З'явиться діалогове вікно "Властивості посилання даних", де ви можете ввести IP-адресу SQL-сервера, а також ім'я користувача та пароль SQL.

Натисніть кнопку "Тест з'єднання", щоб побачити, чи можна підключитися.

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


Обов’язково перейдіть на вкладку Провайдер і виберіть потрібного постачальника OLE DB: "Провайдер Microsoft OLE DB для SQL Server"
DaveB

Дейв, ласкаво просимо та добре відповісти. Ви можете редагувати свою публікацію (у нижньому лівому куті), щоб додати цю додаткову інформацію. Потім видаліть свій коментар.
Майкл Грін

Це справді чудова відповідь, оскільки він працює майже на будь-якому сервері незалежно від того, що або що не встановлено. Все, що вам потрібно, це Блокнот. Дякую за чудову відповідь, дійсно допомогла мені переконати свого клієнта, що зв’язок SQL працює.
robnick

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..."
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.