При развертывании новой информационной базы 1С:Предприятие на сервере MS SQL Server системные администраторы часто сталкиваются с ошибкой: «Microsoft SQL Server Native Client 11.0: Разрешение CREATE TABLE запрещено в базе данных "test_1". HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, native=262». Эта ситуация кажется парадоксальной, так как у пользователя SQL Server могут быть назначены роли dbcreator и diskadmin, которые, на первый взгляд, должны обеспечивать полные права на создание базы. Рассмотрим подробнее, почему возникает эта ошибка и как её исправить по шагам.
Проанализируем ситуацию. Когда консоль кластера 1С инициирует создание базы данных, процесс происходит в несколько этапов. Сначала SQL Server создает файлы базы данных (MDF и LDF) — для этого достаточно роли dbcreator. Однако сразу после создания файлов 1С пытается создать в новой базе системные таблицы, необходимые для работы платформы. На этом этапе SQL Server проверяет права пользователя внутри конкретной созданной базы.
Если в процессе создания произошел сбой или настройки безопасности сервера ограничены, пользователь может создать базу, но не стать её автоматическим владельцем (dbo). В результате выполнение команды CREATE TABLE блокируется, так как роль dbcreator дает право только на создание самой оболочки базы, но не на управление объектами внутри неё. Также стоит учитывать состояние системной базы model, настройки которой копируются в каждую новую базу.
Если автоматическое создание из консоли 1С завершается ошибкой, воспользуемся методом ручного создания. Разберем этот процесс по шагам:
test_1). На вкладке «Files» крайне важно в поле Owner (Владелец) указать того самого пользователя SQL, под которым 1С будет подключаться к базе.db_owner).CREATE TABLE.Иногда при попытке назначить владельца базы в SSMS возникает ошибка: «Невозможно найти база данных, так как она не существует или отсутствуют разрешения (Error: 15151)». Рассмотрим, как решить эту проблему:
Эта ошибка часто указывает на то, что база данных находится в некорректном состоянии или у текущего сеанса администратора недостаточно полномочий на смену владельца в конкретном контексте безопасности. Проанализируем ситуацию с помощью SQL-запроса. Попробуем принудительно назначить владельца через скрипт:
USE [test_1];
GO
ALTER AUTHORIZATION ON DATABASE::[test_1] TO [имя_вашего_пользователя];
GO
Использование команды ALTER AUTHORIZATION является более современным и предпочтительным способом, чем устаревшая процедура sp_changedbowner. Если база «не видна», убедитесь, что файлы базы не заблокированы антивирусом и у службы SQL Server есть полные права на папку, где лежат файлы данных.
Несмотря на рекомендации по минимизации прав, на практике для корректного создания баз напрямую из 1С пользователю SQL зачастую требуется роль sysadmin. Разберем по шагам, почему это важно:
ALTER DATABASE.dbcreator недостаточно.Посмотрим, как назначить роль: в SSMS перейдем в «Security» -> «Logins», откроем свойства нашего пользователя и на вкладке «Server Roles» отметим флажком sysadmin. После завершения создания базы 1С уровень прав можно попробовать понизить, но первичная инициализация требует максимума полномочий.
Любая новая база в MS SQL — это копия базы model. Если в базе model установлены специфические запреты или изменены права доступа для роли public, эти ограничения перейдут и в вашу базу test_1. Проанализируем состояние model:
model не стоит запрет на создание таблиц для стандартных ролей.tempdb, так как транзакции по созданию объектов базы 1С активно используют временное хранилище.В тексте ошибки часто фигурирует Microsoft SQL Server Native Client 11.0. Разберем важный технический нюанс: этот драйвер считается устаревшим и может некорректно работать с новыми версиями SQL Server (2019, 2022). Если вышеперечисленные методы не помогают, рекомендуется установить на сервере 1С актуальный Microsoft OLE DB Driver for SQL Server (msoledbsql). Это обеспечит более стабильное взаимодействие платформы с СУБД и более прозрачную обработку ошибок безопасности.
Таким образом, мы выяснили, что основной причиной ошибки является нехватка прав на манипуляцию объектами внутри только что созданной базы. Совместное использование предварительного создания базы в SSMS и временное повышение прав пользователя до sysadmin гарантированно решает проблему инициализации информационной базы 1С.