MSSQLSERVER_5120
Область применения: SQL Server
Сведения
Атрибут | Значение |
---|---|
Название продукта | SQL Server |
ИД события | 5120 |
Источник событий | MSSQLSERVER |
Компонент | SQLEngine |
Символическое имя | DSK_FCB_FAILURE |
Текст сообщения | Ошибка таблицы: не удается открыть физический файл "%.*ls". Ошибка операционной системы %d: "%ls". |
Описание
SQL Server не удалось открыть файл базы данных. Ошибка операционной системы, о которой говорится в сообщении, указывает на конкретные первопричины сбоя. Обычно эта ошибка возникает вместе с другими ошибками, такими как 17204 или 17207.
Действие пользователя
Определите причину, исправьте ошибку операционной системы, затем еще раз попытайтесь выполнить операцию. Есть несколько состояний, сведения о которых могут помочь корпорации Майкрософт уменьшить область изучения для определения ошибки.
Доступ запрещен
В случае возникновения ошибки операционной системы 5 (Access is Denied
), рассмотрите следующие методы устранения:
Проверьте разрешения, заданные в файле, просмотрев свойства файла в проводнике Windows. SQL Server использует группы Windows для подготовки контроль доступа в различных файлах. Убедитесь, что соответствующая группа (с именем SQLServerMSSQLUser$ComputerName$MSSQLSERVER или SQLServerMSSQLUser$ComputerName$InstanceName) имеет необходимые разрешения для файла базы данных, указанного в сообщении об ошибке. Дополнительные сведения см. в статье Настройка разрешений файловой системы для доступа к компоненту ядра СУБД. Убедитесь, что группа Windows фактически включает учетную запись запуска службы SQL Server или идентификатор безопасности службы.
Просмотрите учетную запись пользователя, в которой запущена служба SQL Server. Для получения этих сведений можно использовать диспетчер задач Windows. Найдите значение "Имя пользователя" для исполняемого файла "sqlservr.exe". Кроме того, если вы недавно изменили учетную запись службы SQL Server, знают, что поддерживаемый способ выполнения этой операции — использовать служебную программу диспетчер конфигурации SQL Server.
В зависимости от типа операции — открытие баз данных во время запуска сервера, присоединение базы данных, восстановление базы данных и т. д. — учетная запись, используемая для олицетворения и получения доступа к файлу базы данных, может варьироваться. Сведения о том, какая операция позволяет задавать разрешения к каким учетным записям, см. в статье Защита данных и файлов журналов. Используйте такие средства, как Process Monitor из пакета Windows SysInternals, чтобы узнать, каким образом предоставляется доступ к файлу: в контексте безопасности учетной записи запуска службы экземпляра SQL Server или через олицетворенной учетной записи.
Если SQL Server олицетворяет учетные данные пользователя, выполняющего операцию ALTER DATABASE или CREATE DATABASE, в средстве Process Monitor отобразятся следующие сведения (пример).
Date & Time: 3/27/2010 8:26:08 PM Event Class: File System Operation: CreateFile Result: ACCESS DENIED Path: C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\DATA\attach_test.mdf TID: 4288 Duration: 0.0000366 Desired Access:Generic Read/Write Disposition: Open Options: Synchronous IO Non-Alert, Non-Directory File, Open No Recall Attributes: N ShareMode: Read AllocationSize: n/a Impersonating: DomainName\UserName
Подключение файлов, размещенных в запоминающем устройстве, подключаемом к сети
Если не удается повторно подключить базу данных, которая находится в запоминающем устройстве, подключаемом к сети, это сообщение может быть зарегистрировано в журнале приложений.
Msg 5120, Level 16, State 101, Line 1 Unable to open the physical file "\\servername\sharename\filename.mdf". Operating system error 5: (Access is denied.).
Эта проблема возникает, так как SQL Server сбрасывает разрешения файла при отключении базы данных. При попытке повторно подключить базу данных происходит сбой из-за ограниченных разрешений общего доступа.
Чтобы устранить эту проблему, сделайте следующее.
Используйте параметр запуска -T для запуска SQL Server. Используйте этот параметр запуска, чтобы включить флаг трассировки 1802 в диспетчере конфигурации SQL Server (сведения о 1802 см. в разделе Флаги трассировки). Дополнительные сведения об изменении параметров запуска см. в разделе Параметры запуска службы ядра СУБД.
Отключить базу данных можно с помощью приведенной ниже команды.
exec sp_detach_db DatabaseName go
Восстановить подключение базы данных можно с помощью приведенной ниже команды.
exec sp_attach_db DatabaseName, '\\Network-attached storage_Path\DatabaseMDFFile.mdf', '\\Network-attached storage_Path\DatabaseLDFFile.ldf' go