Как исправить ошибку авторизации native=18456 при создании базы 1С на MS SQL Server?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При создании новой информационной базы 1С:Предприятия на сервере СУБД MS SQL Server через консоль администрирования кластера или окно запуска платформы администраторы нередко сталкиваются с критической ошибкой следующего вида:

hresult=80040E4D, SQLsrvr:SQLSTATE=28000, state=1, Severity=E, native=18456, line=1 — Ошибка входа пользователя

Разберем детально, о чем сообщает данный диагностический код, почему он возникает даже при попытке ввода нового пользователя и как по шагам восстановить доступ и успешно создать базу данных.

Причины возникновения ошибки native 18456

Код ошибки 18456 (соответствующий стандарту SQLSTATE 28000) однозначно указывает на то, что подключение к экземпляру SQL Server было успешно установлено по сети, но процесс проверки подлинности (аутентификации) завершился сбоем. Сервер СУБД отклонил учетные данные.

Рассмотрим ключевые причины, вызывающие данный сбой:

  1. Неверно указанный логин или пароль: опечатка в имени учетной записи (например, sa) или ее пароле.
  2. Несоответствие пароля политикам безопасности Windows: если на сервере включена опция проверки сложности паролей (Enforce password policy), слишком простой пароль или пароль, не менявшийся длительное время, блокируется системой.
  3. Включен режим аутентификации только по Windows: если экземпляр MS SQL Server настроен исключительно на Windows Authentication Mode, любые попытки авторизоваться с логином SQL Server (включая sa) будут отклонены.
  4. Флаг требования смены пароля: для пользователя установлен параметр Must change password at next login. Платформа 1С не имеет интерфейса для ввода нового пароля при первом подключении, поэтому сервер 1С сразу возвращает ошибку авторизации.
  5. Учетная запись отключена или заблокирована: после серии неудачных попыток ввода пароля учетная запись СУБД временно блокируется политиками безопасности.

Шаг 1. Точная диагностика через журнал SQL Server (ERRORLOG)

Клиентским приложениям и платформе 1С сервер MS SQL в целях безопасности всегда возвращает обобщенный параметр State: 1, скрывая истинную причину отказа. Чтобы узнать точную причину, проанализируем журнал ошибок СУБД.

Откроем SQL Server Management Studio (SSMS), подключимся с правами администратора Windows, перейдем в ветку Management (Управление) → SQL Server Logs (Журналы SQL Server) и откроем текущий лог. Найдем записи со сбоем входа. Обратим внимание на значение State:

  1. State 2, 5: указано несуществующее имя пользователя.
  2. State 6, 7: учетная запись отключена (Disabled).
  3. State 8: указан неверный пароль.
  4. State 9: недопустимый формат пароля.
  5. State 11, 12: учетная запись существует и пароль верен, но у нее нет права на подключение (CONNECT SQL).
  6. State 18: требуется обязательная смена пароля при следующем входе или истек срок действия пароля.
  7. State 38: база данных по умолчанию для этого пользователя недоступна или переведена в Offline.

Шаг 2. Проверка и переключение режима аутентификации сервера

Выясним, разрешена ли на сервере авторизация учетных записей SQL. Для этого выполним следующие действия:

  1. В SSMS нажмем правой кнопкой мыши на корневой узел сервера и откроем Properties (Свойства).
  2. Перейдем на вкладку Security (Безопасность).
  3. В блоке Server authentication убедимся, что выбран пункт SQL Server and Windows Authentication mode (Режим аутентификации SQL Server и Windows).
  4. Нажмем ОК.
  5. Важно: если режим был изменен, обязательно перезапустим службу SQL Server (MSSQLSERVER) через оснастку служб Windows или SQL Server Configuration Manager, иначе изменения не вступят в силу.

Шаг 3. Сброс пароля и настройка параметров учетной записи

Проверим параметры учетной записи, под которой выполняется создание базы (например, sa или специально созданный пользователь для 1С):

  1. В SSMS развернем ветку Security → Logins (Безопасность → Имена входа).
  2. Откроем свойства нужного пользователя двойным кликом.
  3. На вкладке General (Общие) зададим новый надежный пароль и подтвердим его.
  4. Снимем флажок Must change password at next login (Требовать смену пароля при следующем входе).
  5. На вкладке Status (Состояние) проверим, чтобы параметр Permission to connect to database engine был установлен в значение Grant (Предоставить), а Login — в значение Enabled (Включено).
  6. Сохраним изменения нажатием OK.
  7. Обязательно выполним тестовый вход в SSMS под этой учетной записью с выбором SQL Server Authentication, чтобы убедиться в корректности нового пароля.

Шаг 4. Настройка прав пользователя без использования sa

Использовать учетную запись суперпользователя sa для постоянной работы 1С не рекомендуется из соображений информационной безопасности. Рассмотрим, какие минимальные права требуются для пользователя СУБД, чтобы успешно создавать и обслуживать базы 1С:

  1. В свойствах пользователя в SSMS перейдем на вкладку Server Roles (Роли сервера).
  2. Для создания базы данных пользователю необходима роль dbcreator.
  3. Для корректного управления процессами, мониторинга и завершения зависших клиентских соединений со стороны кластера 1С назначим роль processadmin.
  4. После успешного создания базы данных и формирования таблиц учетная запись должна являться владельцем базы с ролью db_owner внутри созданной БД.

Шаг 5. Повторное создание базы в 1С

После сброса пароля, настройки политик и проверки режима аутентификации вернемся в консоль администрирования кластера серверов 1С:Предприятия или диалог добавления базы:

  1. Укажем имя сервера баз данных (при использовании именованного экземпляра указываем в формате ИмяСервера\ИмяЭкземпляра, при нестандартном порте — ИмяСервера,Порт).
  2. Введем имя базы данных.
  3. Укажем логин пользователя СУБД и заданный обновленный пароль.
  4. Запустим процесс создания базы. Подключение пройдет успешно.
← На главную