Назад | Перейти на главную страницу

TCP / IP-соединение с SQL Express работает на ПОЛОВИНЕ клиентов в РАБОЧЕЙ ГРУППЕ

До сих пор я узнал следующие факты о Microsoft SQL Server Express, включая версию 2012, и более ранние версии, такие как 2008R2 и 2008, и, по большей части, вплоть до SQL Server 2005. Я настраиваю SQL SERVER на " «сервер рабочей группы», то есть это выделенный сервер, работающий под управлением ОС Windows Server, но он использует РАБОЧУЮ ГРУППУ, и на нем работает только Microsoft SQL Express.

Обратите внимание на следующие основные факты:

Все вышеперечисленное является предысторией и дано, чтобы прояснить следующую часть, которая является моим фактическим вопросом:

Типичная строка подключения, которая заставляет именованные каналы, может либо поставить «NP:» перед хостом и экземпляром, например: «NP: HOSTNAME \ SQLEXPRESS», плюс мы перейдем к CLICONFG.EXE этого клиента и отключим TCP / IP. Оба шага необходимы в некоторых ситуациях в рабочей группе.

И снова вопрос в том, ПОЧЕМУ половина клиентских систем Windows 7 (в среднем 6 из 12) на некоторых сайтах моих клиентов не имеет возможности выполнять SQL-обмен через TCP / IP по локальным сетям своих рабочих групп.

Некоторые квалификации и общие факты:

Все вышесказанное является правдой, и я озадачен, почему SQL через TCP с включенными IPV6 и IPV4 (стандартная 32-разрядная сетевая конфигурация Windows 7) было бы так сложно заставить работать. Единственный частичный ответ, который у меня есть до сих пор, заключается в том, что в НЕКОТОРЫХ случаях, похоже, различия в имени рабочей группы могут быть причиной некоторых проблем. (Машина A не имеет проблем и работает под управлением Windows 7, для нее задано имя рабочей группы WORKGROUP, на компьютере B есть проблемы, она работает в Windows 7 и имеет имя рабочей группы MYCOMPANY.)

Обратите внимание, что связанная с этим сбивающая с толку проблема, на которой могут застрять некоторые люди, связана с выбором между аутентификацией SQL и (интегрированной) аутентификацией Windows. Мы всегда используем аутентификацию SQL при настройке соединений в рабочей группе, и это кажется совершенно необходимым из-за отсутствия домена, и я не об этом спрашиваю. Я спрашиваю ТОЛЬКО о TCP / IP по сравнению с именованными каналами и о причине, по которой я не могу настроить TCP / IP-соединения, которые работают в рабочей группе, и все же я ЖЕСТЯНАЯ БАНКА легко настроить их в большинстве WAN, VPN и даже в Интернете.

Почему ЛВС WINDOWS WORKGROUP - это особый случай подключения TCP / IP к SQL Server Express?

Я подозреваю, что существуют некоторые основные проблемы, связанные с IPV4, IPV6, DNS и отсутствием «проблем с доверием», которые затем приводят к тому, что основные части подключения TCP / IP + DNS «частично нарушаются», но я не нашел какой-либо точной документации SQL Server по этому вопросу. .

  1. Между DNS и TCP нет никакого «доверия», о котором вы говорите. Между DNS и TCP существует взаимосвязь в отношении DNS, облегчающего подключение на основе имен к хостам TCP, но определенно нет никакого «доверия». Чтобы один хост мог подключиться к другому хосту по имени, это имя должно быть разрешаемым. Это называется разрешением имен. Очень часто это достигается с помощью DNS, но в сценарии рабочей группы, который вы описываете, нет центрального DNS-сервера, который бы обрабатывал разрешение имен для клиентов.

  2. В описанном вами сценарии, где не существует общего DNS-сервера для разрешения имен, клиенты будут прибегать к LLMNR или широковещательной рассылке, в зависимости от клиента. Ни один из методов не гарантирует, что каждый хост сможет разрешить имя любого другого хоста.

  3. Это не волшебство и не загадка. Если вы хотите регулярно и надежно преобразовывать имена хостов в IP-адреса, вам необходимо реализовать внутренний DNS-сервер и соответствующим образом настроить клиентов. Для клиентов рабочей группы это означает необходимость вручную настраивать свой DNS-суффикс для соответствия зоне DNS на DNS-сервере, который вы создаете для рабочей группы, а затем настраивать все клиенты для использования этого DNS-сервера для DNS.