Как исправить ошибку «Разрешение CREATE DATABASE запрещено в базе данных master» при создании базы 1С?

Системный администратор IT и автоматизация бизнеса
← На главную

При попытке создать новую информационную базу 1С на сервере управления базами данных MS SQL Server (как через консоль кластера серверов 1С, так и через обычный клиент) может возникнуть следующая ошибка:

«Ошибка создания информационной базы: Ошибка информационной базы... Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Разрешение CREATE DATABASE запрещено в базе данных "master". HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=1, Severity=E, native=262»

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

Выясняем причину возникновения ошибки

Проанализируем ситуацию: когда платформа 1С пытается автоматически создать новую базу данных на SQL-сервере, она выполняет команду CREATE DATABASE. Все метаданные о новых базах регистрируются в системной базе данных SQL Server под названием master.

Если учетная запись SQL Server, указанная в окне создания базы 1С (логин и пароль СУБД), не имеет необходимых прав для создания баз данных или системных прав на уровне экземпляра сервера, MS SQL Server блокирует эту операцию и возвращает ошибку с кодом 262 (SQLSTATE=42000).

Важно учитывать, что учетная запись службы кластера 1С (например, usr1cv8) и учетная запись администратора СУБД, используемая при добавлении базы, — это разные роли. Права доменного администратора Windows не дают автоматических прав внутри самого экземпляра MS SQL Server, если для пользователя SQL не назначена соответствующая роль.

Способ 1. Назначение пользователю роли sysadmin или dbcreator

Рассмотрим основной и самый простой способ устранения ошибки — предоставление административных прав пользователю SQL Server, под которым выполняется подключение из 1С.

  1. Запустите среду SQL Server Management Studio (SSMS) и подключитесь к нужному экземпляру SQL Server с правами администратора.
  2. В дереве объектов перейдите по пути: Security (Безопасность) -> Logins (Имена входа).
  3. Найдите имя пользователя SQL, которое вы указываете при создании базы в 1С (например, sa или специально созданную учетную запись), и откройте его Properties (Свойства).
  4. Перейдите в раздел Server Roles (Серверные роли).
  5. Для решения проблемы отметьте флаг sysadmin или, слету соблюдая принцип наименьших привилегий, флаг dbcreator. Роли dbcreator достаточно для того, чтобы пользователь мог создавать, изменять и удалять базы данных.
  6. Нажмите ОК для сохранения изменений.

Эту же операцию можно выполнить с помощью T-SQL запроса в SSMS:


-- Добавление роли dbcreator для логина SQL
ALTER SERVER ROLE [dbcreator] ADD MEMBER [Имя_Логина_SQL];
GO

Способ 2. Проверка режима аутентификации SQL Server

Посмотрим на другую распространенную причину. Если при создании базы в 1С используются логин и пароль пользователя SQL Server, но на самом сервере включен режим аутентификации «Только Windows», подключение будет отклонено.

  1. В SSMS нажмите правой кнопкой мыши по имени сервера (корневой узел) и выберите Properties (Свойства).
  2. Перейдите в раздел Security (Безопасность).
  3. В блоке Server authentication (Аутентификация сервера) переключите значение на SQL Server and Windows Authentication mode (Режим аутентификации SQL Server и Windows) — смешанный режим.
  4. Сохраните настройки и обязательно перезапустите службу MS SQL Server.

Способ 3. Ручное создание базы данных в MS SQL Server

Если правила безопасности организации запрещают давать пользователю 1С права на создание баз на уровне всего экземпляра SQL, разберем по шагам альтернативный вариант — предварительное создание пустой базы вручную.

  1. Откройте SSMS, нажмите правой кнопкой мыши на раздел Databases (Базы данных) и выберите New Database... (Новая база данных...).
  2. Укажите имя базы данных.
  3. Перейдите в раздел Options (Параметры) и обязательно задайте параметр сопоставления Collation: Cyrillic_General_CI_AS. Это критически важно для корректной работы платформы 1С.
  4. Нажмите ОК.
  5. Перейдите в Security -> Logins, откройте свойства нужного пользователя SQL, зайдите на вкладку User Mapping (Отображение пользователей), отметьте созданную базу и установите для нее роль db_owner.
  6. В клиентском приложении 1С или консоли кластера добавьте базу, указав имя уже созданной базы в SQL, и установите параметр «Создавать базу данных в случае отсутствия» в значение «Нет».

Таким образом, мы выяснили причины блокировки операции создания базы и разобрали все способы решения этой проблемы — от настройки прав пользователя в MS SQL Server до ручного создания базы с корректными параметрами сопоставления.

← На главную