Почему возникает ошибка 18456 при добавлении базы 1С на MS SQL и как ее исправить?

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

При переносе файловой базы данных на SQL-сервер администраторы часто сталкиваются с тем, что консоль администрирования сервера 1С не может подключиться к СУБД. Одной из самых частых ошибок является Hresult=80040E4D, SQLSTATE = 28000 с кодом 18456. Эта ошибка прямо указывает на то, что сервер SQL отвергает попытку входа пользователя. Давайте разберем, как правильно настроить права и избежать подобных проблем.

Разбор причин возникновения ошибки

Ошибка 18456 в MS SQL Server означает, что попытка аутентификации пользователя не удалась. В контексте взаимодействия 1С и SQL чаще всего это происходит из-за того, что учетная запись, указанная в консоли 1С, не имеет прав на создание баз данных в экземпляре SQL или вообще не добавлена в список логинов сервера.

Пошаговое решение проблемы

Рассмотрим процесс настройки прав доступа, чтобы сервер 1С мог успешно взаимодействовать с SQL-сервером. Работу следует проводить в SQL Server Management Studio.

  1. Создание логина SQL: Перейдите в раздел Security -> Logins вашего сервера SQL. Убедитесь, что пользователь, которого вы указываете в консоли кластера 1С, добавлен в этот список. Если его нет — создайте нового пользователя и установите для него пароль.
  2. Назначение прав: Чтобы 1С могла создавать базы данных, пользователю необходима роль dbcreator. Для этого в свойствах логина перейдите на вкладку Server Roles и установите флажок напротив dbcreator. Также убедитесь, что роль public назначена (она часто присваивается автоматически).
  3. Настройка сервера 1С: Вернитесь в консоль администрирования серверов 1С. При создании новой информационной базы используйте созданного или настроенного ранее пользователя SQL (избегайте использования учетной записи sa в целях безопасности).

Альтернативный вариант: создание через конфигуратор

Если по какой-то причине консоль администрирования продолжает выдавать ошибку, можно воспользоваться альтернативным методом:

  1. Создайте пустую базу данных напрямую через SQL Server Management Studio.
  2. В консоли 1С укажите параметры подключения к этой уже созданной пустой базе.
  3. После того как база успешно добавлена в кластер 1С, откройте ее через Конфигуратор.
  4. Используйте функцию Загрузить информационную базу, чтобы развернуть файл дампа .dt в новую клиент-серверную структуру.

Важные замечания по безопасности и архитектуре

Важно различать пользователя USR1CV8 (от имени которого запущена служба сервера 1С в ОС Windows) и пользователя SQL-логина, которого мы прописываем в параметрах базы 1С. Служба сервера должна иметь полные права на каталог базы данных в файловой системе, в то время как SQL-логин управляет объектами внутри самой базы данных.

Помните: Использование учетной записи sa — это путь наименьшего сопротивления, который несет в себе риски безопасности. Мы рекомендуем всегда создавать отдельных пользователей с минимально необходимым набором прав. После того как база успешно создана, роль dbcreator пользователю 1С, по сути, больше не нужна для повседневной эксплуатации, однако для обновления конфигураций могут потребоваться права на изменение схемы данных.

Анализируя ситуацию, мы видим, что ключ к успеху — это корректное добавление учетной записи в Logins сервера SQL и предоставление ей роли dbcreator. Проверьте также, включен ли смешанный режим проверки подлинности (SQL Server and Windows Authentication mode) в настройках самого сервера SQL, так как без него SQL-авторизация может быть недоступна.

← На главную