Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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

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 или виртуальному сервисному аккаунту).