Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_ERR_5120 1С:Предприятие и СУБД

MSSQL Ошибка 5120: Unable to open physical file Operating system error — Решение

Обновлено: 25.08.2026 · Официальная документация ↗
  • Сообщение: Msg 5120, Level 16, State 101: Unable to open the physical file 'D:\Data\Base1C.mdf'. Operating system error 5: '5(Access is denied.)'.
  • База данных переходит в состояние Recovery Pending или не монтируется при выполнении sp_attach_db / CREATE DATABASE ... FOR ATTACH.
  • Сбой инициализации дополнительных файлов данных .ndf или файлов журнала транзакций .ldf.

1. Определение сервисной учетной записи SQL Server

Откройте SQL Server Configuration Manager и найдите имя учетной записи в столбце Log On As для службы SQL Server (MSSQLSERVER) (например, NT Service\MSSQLSERVER или доменная учетная запись DOMAIN\svc_sql).

2. Назначение прав NTFS на папки и файлы базы

Через командную строку PowerShell от имени администратора назначьте полные права на каталог с базами данных 1С:

$Acl = Get-Acl "D:\SQLData"
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("NT SERVICE\MSSQLSERVER", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl "D:\SQLData" $Acl

Или через стандартную утилиту icacls:

icacls "D:\SQLData" /grant "NT SERVICE\MSSQLSERVER":(OI)(CI)F /T

3. Проверка блокировок файловыми дескрипторами и антивирусом

  • Добавьте расширения *.mdf, *.ldf, *.ndf, *.bak, *.trn в исключения антивирусного сканера в реальном времени.
  • Проверьте утилитой Handle.exe (Sysinternals), не удерживает ли файл другой процесс (резервное копирование, сторонний агент):
handle64.exe Base1C.mdf

4. Примонтирование базы данных после исправления прав

CREATE DATABASE [Base1C] ON 
( FILENAME = N'D:\SQLData\Base1C.mdf' ),
( FILENAME = N'D:\SQLLog\Base1C_log.ldf' )
FOR ATTACH;
GO
💡 Практика специалистов: Если файлы баз данных 1С размещаются на сетевом хранилище по протоколу SMB 3.0, служба SQL Server обязательно должна работать под доменной учетной записью, которой выданы права как на уровне общей папки (Share Permissions), так и на уровне файловой системы (NTFS).

Частые вопросы (FAQ)

Что означает код 'Operating system error 5' в тексте ошибки 5120?

Код ошибки Windows 5 означает ERROR_ACCESS_DENIED (Отказ в доступе). У сервисной учетной записи службы SQL Server отсутствуют права NTFS на чтение/запись в указанный каталог или файл.

Что делать, если возвращается 'Operating system error 32'?

Код ошибки 32 (ERROR_SHARING_VIOLATION) означает, что файл занят другим процессом (например, службой стороннего бэкапа уровня ОС или запущенным другим экземпляром SQL Server).

Почему права сбиваются при копировании файлов на другой диск?

При копировании файлов через проводник они наследуют права нового родительского каталога. Если в новой папке нет разрешений для сервисного SID SQL Server, возникнет ошибка 5120.

Можно ли давать группе 'Все' (Everyone) права на папки SQL Server?

Это крайне небезопасно. Назначайте права исключительно учетной записи службы SQL Server (NT SERVICE\MSSQLSERVER или виртуальному сервисному аккаунту).

Полезные материалы
Рекомендуем