Проблемы с первым подключением к SQL Server 2008 R2 - PullRequest
0 голосов
/ 19 марта 2012

У нас возникла странная проблема с SQL 2008 R2 (10.50.1600), установленным как именованный экземпляр. Для подключения внешних клиентов у нас есть определенная процедура, которой мы должны следовать, но не должны. Теперь я действительно открыл протоколы TCP/IP и Named Pipes на сервере SQL и перезапустил его, это не проблема. Мы находимся в домене Active Directory (работает с Server 2003). Проблема существует независимо от того, какой ОС является сервером или клиентом (XP, 2003, 2008, Vista, 7, 64-битная, 32-битная и т. Д.). Проблема также сохраняется от всего, что может подключиться, например, SQL Management Studio, ADO (из наших приложений) и т. Д.

Проблема в том, что прежде чем любой клиент сможет подключиться к этому серверу, каждый клиентский компьютер должен сначала подключиться к этому серверу через ODBC (а мы не используем ODBC). Любая попытка подключиться к серверу SQL 10.5 до этого приводит к «Сервер не существует или доступ запрещен». Но как только мы можем подключиться к ODBC (через Named Pipes), все остальное начинает работать. Одна и та же проблема возникает как при использовании имени компьютера и IP-адреса. Фактически, если мы хотим соединиться с именем компьютера \ именем экземпляра, то сначала мы должны сделать это в ODBC, а затем, если мы хотим соединиться через IP-адрес \ имя экземпляра, то мы должны сделать то же самое для что.

Нам приходилось делать это на каждом клиентском компьютере. Опять же, когда ODBC сможет подключиться к этому серверу SQL через именованные каналы, все будущие попытки этого клиента сработают.

Что может быть причиной этого? Как этого избежать? Я не должен был делать этот «трюк ODBC», как мы его называем. У меня никогда не было этой проблемы ни с какой другой версией SQL.

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

Возможно, проблема связана со службой браузера SQL. У каждого экземпляра sql будет свой номер порта - попробуйте подключиться с клиента как IP-адрес, порт (например, 123.123.123.1,1433) - это исключит DNS и браузер из уравнения

Редактировать : теперь, зная, что это связано с браузером, попробуйте выяснить, почему клиенты не могут получить доступ к браузеру SQL (обычно это порт 1434). Сервис не запущен? Возможно блокировка брандмауэра?

Microsoft по умолчанию теперь связывает все, что касается безопасности, поэтому любая новая конфигурация обычно требует довольно подробного планирования безопасности, настройки политики, разрешений и т. Д. Добро пожаловать в эпоху недоверия;)

0 голосов
/ 15 января 2013

Вы можете легко проверить ваше соединение, создав простой файл. Выполните действия, описанные здесь в разделе «Как проверить соединение с SQL Server»: http://teusje.wordpress.com/2012/02/21/how-to-test-an-sql-server-connection/

...