MSSQL Ошибка 17: SQL Server does not exist or access denied (Сервер не существует)
Природа и контекст возникновения ошибки MSSQL Error 17
Ошибка MSSQL Error 17 (SQL Server does not exist or access denied) является комплексным статусным кодом интерфейса DB-Library / OLE DB / ODBC. В отличие от ошибки №2 (которая указывает на чисто транспортный сбой), Ошибка 17 означает одну из двух ситуаций: либо сервер СУБД не был найден на этапе трансляции имени/маршрутизации (SQL Server does not exist), либо сетевое соединение было установлено, но сервер СУБД немедленно отверг авторизацию клиента на этапе рукопожатия безопасности (Access denied / Login failed).
Бизнес-риски
Отказ авторизации приложений, блокировка учетных записей администраторов базы данных, остановка интеграционных шлюзов и систем отчетности PowerBI/SSRS.
Диагностическая матрица ошибки 17
| Симптом в логе | Фактическая причина | Место локализации |
|---|---|---|
Server does not exist | Ошибка DNS-резолвинга или опечатка в имени инстанса. | Клиентская рабочая станция / Сеть. |
Login failed for user 'sa' | Не включен режим смешанной аутентификации (Mixed Mode). | Настройки безопасности SQL Server. |
SSPI context cannot be generated | Дублирование или отсутствие записей SPN в Active Directory. | Контроллер домена AD / Kerberos. |
Алгоритм устранения ошибки MSSQL Error 17
Сценарий 1: Включение смешанного режима аутентификации (Mixed Authentication Mode)
Если SQL Server установлен в режиме «Только проверка подлинности Windows», попытка входа под пользователем sa или SQL-логином вызывает Ошибку 17:
- Подключитесь к экземпляру через SSMS под учетной записью локального администратора Windows.
- В Object Explorer щелкните правой кнопкой мыши по серверу $\rightarrow$ Properties (Свойства).
- Перейдите на страницу Security (Безопасность).
- В секции Server authentication выберите «SQL Server and Windows Authentication mode» (Смешанный режим).
- Нажмите OK и обязательно перезапустите службу SQL Server.
Сценарий 2: Разблокировка учетной записи и сброс пароля 'sa'
-- Выполните T-SQL скрипт для разблокировки системного администратора СУБД:
ALTER LOGIN [sa] ENABLE;
GO
ALTER LOGIN [sa] WITH PASSWORD = 'MyNewStrongPassword2024!', UNLOCK, CHECK_POLICY = ON;
GOСценарий 3: Устранение дубликатов SPN (Service Principal Name) в Active Directory
Если ошибка сопровождается текстом «The target principal name is incorrect / Cannot generate SSPI context»:
# Поиск зарегистрированных SPN для службы SQL Server в домене Active Directory:
setspn -Q MSSQLSvc/sql-server.corp.local*
# Если обнаружены дубликаты на разных учетных записях -> удалите неверный SPN:
setspn -D MSSQLSvc/sql-server.corp.local:1433 CORP\OldServiceAccount
# Регистрация корректного SPN на учетную запись службы SQL Server:
setspn -S MSSQLSvc/sql-server.corp.local:1433 CORP\SQLServiceAccountТиповые ошибки администраторов
- Попытка авторизации под заблокированной доменной учетной записью: Учетная запись заблокирована в Active Directory из-за превышения числа попыток ввода пароля.
- Использование устаревшего клиента SQL Native Client (SQLNCLI): Устаревший драйвер не поддерживает протокол TLS 1.2/1.3, сервер SQL сбрасывает сессию. Установите актуальный Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL19).
Эксперты ITSTM настроят безопасную модель аутентификации, устранят конфликты SPN Kerberos и защитят базы данных от несанкционированного доступа.
Частые вопросы (FAQ)
Почему ошибка 17 возникает при подключении через алиас (SQL Alias)?
Проверьте разрядность созданного алиаса в утилите cliconfg.exe: 32-битные приложения (например, 32-битный клиент 1С) используют алиасы из C:\Windows\SysWOW64\cliconfg.exe, а 64-битные — из System32.
Как сбросить пароль sa, если потерян доступ администратора Windows?
Запустите экземпляр SQL Server в однопользовательском режиме (флаг запуска -m в параметрах службы), после чего подключитесь через sqlcmd от локального администратора и смените пароль sa.
В чем отличие Ошибки 17 от Ошибки 18456?
Ошибка 18456 — это детальная серверная ошибка (Login failed for user) с указанием конкретного State в ERRORLOG. Ошибка 17 — это обобщенный клиентский ответ сетевого драйвера.
Может ли протокол TLS вызывать Ошибку 17?
Да, если на сервере включен только TLS 1.2, а клиентская машина работает на устаревшей Windows 7/Server 2008 без установленного обновления KB3135244.