Порой при попытке подключения к БД в режиме SQL аутентификации, вы можете получить следующую ошибку:
A connection was successfully established with the server but then an error occurred during login process. (Provider: Shared Memory Provider, error: 0 – No process is on the end of the pipe.) (Microsoft SQL Server, Error: 233).
У нас есть пару способов, которые могут помочь в решение этой проблемы.
Включить TCP/IP стек
По умолчанию, SQL сервер использует порт 1433, которые использует в качестве транспорта TCP. Нам нужно включить TCP/IP в настройках Configuration Manager:
- Подключитесь к SQL серверу;
- Откройте SQL Server Configuration Manager. Перейдите в настройку SQL Server Network Configuration → Protocols for %название%;
- Проверяем, чтобы TCP/IP был включен (Enabled). Если выключен, то дважды левой кнопкой мыши нажмите на опцию и выберите Enabled = Yes;
После указанного вида работ службу (сервис) SQL необходимо перезагрузить.
Named Pipes
Так называемый Named Pipes (именованный канал) обеспечивает взаимодействие между процессами на одной машине, без снижения производительности. Эту опцию нужно включить, если вы столкнулись с 233 ошибкой:
- Подключитесь к SQL серверу;
- Откройте SQL Server Configuration Manager. Перейдите в настройку SQL Server Network Configuration → Protocols for %название%;
- Проверяем, чтобы Named Pipes был включен (Enabled). Если выключен, то дважды левой кнопкой мыши нажмите на опцию и выберите Enabled = Yes;
Данная опция соседствует с параметром TCP/IP, который мы включали ранее (см. скриншот выше).
Гре***ый фаеравол!
На самом деле, фаервол это хорошо. Он защищает от атак наши системы. Но порой, из – за него у нас не работают нужные компоненты, и, в том числе, появляется ошибка 233.
Добавим 1433 порт в исключения. Для этого:
- Запустить службу WF.msc (открыв меню Пуск и набрав в поиске);
- В настройка Windows Firewall with Advanced Security, слева, нажмите на Inbound Rules, после чего нажмите на New Rule в открывшемся меню справа;
- В Rule Type выбираем Port, нажимаем Next;
- В разделе Protocol and Ports, укажите TCP. В пункте Specific local ports указываем 1433. Нажмите Next;
- В разделе Action (действия, что делать?), выбираем Allow the connection, и нажимаем Next;
- В разделе Profile применяем политику для всех видов (Domain, Private, Public). Важно! - настройка данного пункта зависит от ваших корпоративных политик безопасности и мы не рекомендуем открывать Public;
- В финальном окне даем имя нашему правилу, например, Allow inbound SQL;
Проверяем удаленные подключения
Важно не забыть разрешить удаленные подключения к серверу. Сделать это не трудно:
- Открываем SQL Server Management Studio и подключаемся (доменная или SQL аутентификация);
- Выбираем сервер (верхняя сущность в иерархии слева, в меню), нажимаем на него правой кнопкой мыши и выбираем пункт Properties;
- В открывшемся окне нажимаем на Connections. В меню настройки нажимаем на чекбокс Allow remote connections to this server;
- Нажимаем OK;
Перезагружаем сервис SQL, проверяем, пропала ли ошибка? :)