При администрировании серверов 1С:Предприятие системные администраторы часто сталкиваются с ситуацией, когда при создании новой информационной базы через консоль администрирования 1С файлы базы данных (MDF) и логов (LDF) создаются не в том каталоге, который был указан в параметрах, а в стандартном пути установки MS SQL Server. Проанализируем ситуацию: это происходит не из-за ошибки в самой 1С, а из-за особенностей взаимодействия сервера приложений с СУБД и прав доступа в операционной системе Windows.
Первым делом рассмотрим настройки самого SQL-сервера. Если в параметрах экземпляра жестко заданы пути по умолчанию, SQL Server может игнорировать команды от внешних приложений (включая 1С), если в запросе на создание базы есть неопределенность или если прав текущего пользователя недостаточно для записи в альтернативный каталог.
Чтобы проверить и изменить эти настройки, выполним следующие шаги:
Часто проблема кроется в том, что у службы SQL Server нет физических прав на запись в ту папку, которую вы указываете в консоли 1С. Посмотрим, как правильно назначать права. В современных версиях Windows Server использование конкретных доменных имен или локальных пользователей для назначения прав на папки считается менее надежным методом, чем использование Service SID (виртуальных учетных записей служб).
Вместо того чтобы добавлять в права папки пользователя sql_user, попробуем добавить виртуальный объект:
NT SERVICE\MSSQLSERVERNT SERVICE\MSSQL$ИМЯ_ЭКЗЕМПЛЯРАПреимущество этого подхода в том, что даже если вы измените учетную запись, под которой запускается служба в services.msc, права доступа к папкам сохранятся за самой «сущностью» службы.
Если ваш сервер был получен путем клонирования виртуальной машины или копирования диска, вы почти наверняка столкнетесь с проблемой недействительных идентификаторов безопасности. Обратим внимание на симптом: в свойствах безопасности папки вы видите пользователя с длинным именем из цифр и тире (например, S-1-5-21-...), а рядом иконку с вопросительным знаком. Это «мертвый» SID со старого сервера.
Разберем по шагам, как это исправить:
sqlservr.exe через Диспетчер задач (вкладка «Подробности»).В обсуждении упоминалось, что при попытке сменить пользователя через стандартную оснастку Windows services.msc, служба перестает запускаться. Выясним причину: при смене пользователя через обычные «Службы», Windows не обновляет права доступа к веткам реестра и системным базам данных SQL (master, model, msdb).
Для корректной смены пользователя рассмотрим использование специальной утилиты:
Именно этот способ автоматически пропишет все необходимые разрешения в реестре и файловой системе для новой учетной записи, и служба запустится без ошибок.
Не забудем, что инициатором создания базы является сервер 1С. Проанализируем ситуацию, когда SQL не может выполнить команду из-за ограничений безопасности. Важно, чтобы учетная запись, под которой запущен «Агент сервера 1С:Предприятие 8.3» (процесс ragent.exe), имела право на имитацию клиента.
Для этого выполним настройку в локальных политиках безопасности (secpol.msc):
Напоследок проверим параметры самого диска. SQL Server накладывает определенные ограничения на файловую систему:
Таким образом, решив проблему с правами доступа и корректно настроив учетную запись службы SQL Server после клонирования, мы добьемся того, что базы 1С будут создаваться именно в тех каталогах, которые указаны системным администратором.