SQL Server может быть подключен из локальной системы, но не может быть подключен из удаленной системы в сети. Код ошибки 40 из Visual Studio и 1326 при попытке подключения к SQL Server из Management Studio.
- Проблема не в брандмауэре
- Соединение TCP/IP включено из SQL Server
- Есть 2 терминала ПК, которые могут подключаться к SQL Server, но третий не может, и они используют те же строки подключения, поэтому строка подключения правильная.
Это SQL сервер 2000
любая помощь будет оценена по достоинству, спасибо
решение1
Попробуйте подключиться из ODBC (панель управления, администратор, odbc, новое пользовательское подключение). Попробуйте создать подключение и протестировать его в конце мастера. Если это сработает, то проблема как-то связана со строкой подключения OLEDB и т. д.
В противном случае это может быть
- проблема с DNS (при пинге убедитесь, что возвращается правильный IP-адрес)
- проблема с разрешениями сервера (проверьте, можете ли вы подключить диск к SQL Server и повторите попытку подключения)
- проблема с разрешениями SQL (проверьте панель безопасности SQL, убедитесь, что у пользователя есть разрешение db_reader (минимум) для его/ее базы данных по умолчанию)
- неверный псевдоним SQL (в мастере ODBC в разделе сведений о подключении убедитесь, что имя сервера указано только один раз. Если оно указано несколько раз, вы можете установить инструменты конфигурации клиента SQL и удалить все лишние псевдонимы SQL Server, которые могут перенаправлять [имя сервера] на другой компьютер или использовать недопустимый протокол по умолчанию).
решение2
попробуйте пропинговать сервер с третьего терминала, чтобы проверить, установлено ли соединение между ними
решение3
Причин возникновения ошибки 40 довольно много. Посмотритездесь для получения более подробной информации.
решение4
Обе ошибки 40 и 1326 указывают на ошибку именованного канала, а не на ошибку TCP. Поскольку вы упоминаете, что на вашем сервере включен TCP, но ничего не говорите об именованных каналах, я предлагаю вам исключить именованные каналы из уравнения. Если вы явно не отключите именованные каналы, клиенты всегда будут сначала пытаться использовать этот протокол и сталкиваться с различными ошибками, поскольку именованные каналы требуют подключения SMB и аутентификации домена на уровне общего доступа к файламдодаже достигая SQL Server. У вас есть два пути:
- Полностью отключите именованные каналы на клиенте. СмотритеНастройка клиентских сетевых протоколов.
- принудительное включение tcp в строку подключения, используйте
tcp:servername
синтаксис для части имени сервера в строке подключения, см.Как использовать параметр имени сервера в строке подключения для указания клиентской сетевой библиотеки.