Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

MSSQL Error 18456: Login failed for user — Расшифровка всех State кодов

Обновлено: 25.08.2026  ·  Официальная база знаний

Ошибка 18456 (Severity 14) указывает на отказ в прохождении аутентификации на уровне сервера SQL Server. Точная причина всегда зашифрована во внутреннем коде состояния (State), который записывается только в серверный журнал ERRORLOG.

  • Клиент получает обобщенное сообщение: Login failed for user '%.*ls' (Error: 18456).
  • Служба кластера 1С:Предприятие не может подключиться к СУБД при старте рабочих процессов rphost.
  • В ERRORLOG фиксируется: Login failed for user 'sa'. Reason: Password did not match that for the login provided. [CLIENT: 192.168.1.50].

1. Получение точного кода State из SQL Server ERRORLOG

EXEC sys.sp_readerrorlog 0, 1, '18456';

2. Полная таблица расшифровки State кодов ошибки 18456

StateПричина сбояМетод устранения
State 1Скрытая ошибка (клиентская маскировка)Смотрите реальный State в ERRORLOG сервера.
State 2 / 5Неверный логин пользователя (User ID doesn't exist)Проверьте имя пользователя в строке подключения 1С.
State 6Попытка использовать имя Windows для SQL-логинаСмените тип аутентификации в клиенте.
State 7Отключенная учетная запись (Login is disabled)ALTER LOGIN [user] ENABLE;
State 8Неверный пароль (Password mismatch)Сбросьте пароль логина в SSMS или T-SQL.
State 11 / 12Логин валиден, но нет прав на доступ к серверуGRANT CONNECT SQL TO [user];
State 16Логин заблокирован политикой паролей WindowsALTER LOGIN [user] WITH UNLOCK;
State 38База по умолчанию недоступна или удаленаALTER LOGIN [user] WITH DEFAULT_DATABASE = [master];
State 58Сервер настроен только на Windows AuthenticationВключите Mixed Mode (SQL and Windows Authentication).

3. Переключение сервера в смешанный режим аутентификации (Mixed Mode)

USE [master];
GO
EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE', 
    N'Software\Microsoft\MSSQLServer\MSSQLServer', 
    N'LoginMode', 
    REG_DWORD, 
    2;
GO

После изменения режима аутентификации требуется перезапуск службы SQL Server!

4. Разблокировка и сброс пароля служебной учетной записи 1С

ALTER LOGIN [usr1cv8] WITH PASSWORD = 'YourStrongPassword123!', CHECK_POLICY = OFF;
ALTER LOGIN [usr1cv8] ENABLE;
ALTER LOGIN [usr1cv8] WITH DEFAULT_DATABASE = [master];
Практический опыт инженера: Для рабочих процессов 1С:Предприятие создавайте выделенный SQL-логин с правами db_owner на целевые базы вместо использования глобального суперпользователя sa.

Частые вопросы (FAQ)

Почему клиенту всегда возвращается State 1, даже если пароль неверный?

В целях безопасности (Security by Obscurity) SQL Server возвращает клиентам обобщенный код State 1, чтобы злоумышленник не мог подобрать существующие логины. Истинный State всегда пишется в ERRORLOG.

Что делать при ошибке 18456 State 38?

Это означает, что у пользователя в качестве 'Default Database' указана база, которая была удалена, переведена в Offline или к которой у пользователя нет прав. Назначьте master: ALTER LOGIN [user] WITH DEFAULT_DATABASE = [master].

Почему после смены пароля sa 1С продолжает падать с 18456?

Пароль к СУБД хранится в зашифрованных файлах параметров баз кластера 1С (1CV8Clst.lst). Обновите параметры подключения к базе через консоль администрирования 1C.

Как временно отключить блокировку учетных записей политиками сложности Windows?

Выполните: ALTER LOGIN [user] WITH CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF.