в MSSQL '5(отказано в доступе.)' ошибка при восстановлении базы данных

Я хочу восстановить базу данных из файла (задачи->восстановить->база данных; после выбора из устройства и выберите файл) через SQL server management studio.

после этого, я получаю эту ошибку:

операционная система вернула ошибку ' 5(Доступ запрещен.) при попытке 'RestoreContainer:: ValidateTargetForCreation' on 'E:Program файлыMicrosoft SQL Иметь значение mssql10 сервер.ИМЯ MSSQLSERVERMSSQL ДАННЫХДАННЫЕХХХХХХ.МДФ". Msg 3156, Уровень 16, Состояние 8, сервер XXXX, Строка 2

Как исправить эту проблему? Это ошибка безопасности?

12 ответов


учетная запись, под которой работает sql server, не имеет доступа к местоположению, в котором находится файл резервной копии, или пытается восстановить базу данных. Вы можете использовать диспетчер конфигурации SQL Server найти, какая учетная запись используется для запуска экземпляра SQL Server, а затем убедитесь, что учетная запись имеет полный контроль над .Файл BAK и папка, в которую будет восстановлен MDF.

enter image description here


У меня недавно была эта проблема. Исправление для меня состояло в том, чтобы перейти на страницу файлов диалогового окна восстановления базы данных и проверить "переместить все файлы в папку".Restore Database dialog


Ну, в моем случае решение было довольно простым и прямым.

мне пришлось изменить только значение log On As значение.

действия разрешения-

  1. открыть Sql Server Configuration manager
  2. право click on SQL Server (MSSQLSERVER)
  3. на Properties

enter image description here

  1. изменить log On As значение LocalSystem

enter image description here

надеюсь, что это поможет вам тоже:)


Я просто столкнулся с этой же проблемой, но другим исправить. По сути, на моем компьютере были установлены SQL Server и SQL Server Express. Это не сработает, когда я попытаюсь восстановить SQL Express, но работал правильно, когда я восстановил его на SQL Server.


Я нашел это, и это сработало для меня:

CREATE LOGIN BackupRestoreAdmin WITH PASSWORD='$tr0ngP@$$w0rd'
GO
CREATE USER BackupRestoreAdmin FOR LOGIN BackupRestoreAdmin
GO
EXEC sp_addsrvrolemember 'BackupRestoreAdmin', 'dbcreator'
GO
EXEC sp_addrolemember 'db_owner','BackupRestoreAdmin'
GO

Если вы присоединяете базу данных, посмотрите на сетку "базы данных для присоединения" и, в частности, в столбце владелец после того, как вы указали свой .файл mdf. Обратите внимание на учетную запись и дайте ей полные разрешения для файлов mdf и ldf.


Я попробовал приведенный выше сценарий и получил ту же ошибку 5 (доступ запрещен). Я глубоко нырнул и обнаружил, что файл .бак должен иметь доступ к учетной записи службы SQL. Если вы не уверены, введите services.msc в меню Пуск - > Выполнить, затем проверьте учетную запись входа в службу SQL.

затем перейдите к файлу, щелкните правой кнопкой мыши и выберите вкладку Безопасность в свойствах, затем отредактируйте, чтобы добавить нового пользователя.

наконец, затем дать полное разрешение на него, чтобы дать полный доступ.

затем из SSMS попробуйте восстановить резервную копию.


Я получал ту же ошибку при попытке восстановить SQL 2008 R2 backup db в SQL 2012 DB. Я предполагаю, что ошибка связана с недостаточными разрешениями для размещения .MDF и. файлы ldf на диске C. Я попробовал одну простую вещь, затем мне удалось успешно восстановить ее.

попробуйте это:

в окне мастера восстановления БД перейдите на вкладку файлы, измените назначение восстановления С C: на другой диск. Затем продолжайте обычный процесс восстановления. Он обязательно получит восстанавливается успешно!

надеюсь, это вам тоже поможет. Ура :)


в моем случае мне пришлось поставить галочку в Overwrite the existing database (WITH REPLACE) под Options tab on Restore Database страница.

надеюсь, это поможет кому-то.


У меня была точно такая же проблема, но мое исправление было другим - моя компания шифрует все файлы на моих машинах. После расшифровки файла MSSQL не возникло никаких проблем с доступом и создана БД. Просто щелкните правой кнопкой мыши .файл bak ->свойства ->дополнительно... ->шифровать содержимое для защиты данных. Decrypting


Это случилось со мной ранее сегодня, я был членом группы администратора локального сервера и имел беспрепятственный доступ, или я так думал. Я также отметил опцию "заменить", хотя в экземпляре нет такой БД.

выяснил, что раньше там была БД с тем же именем, а файлы MDF и LDF по-прежнему физически расположены в папках данных и журналов сервера, но фактические метаданные отсутствуют в sys.база данных. учетная запись службы SQL server также не может ovewrwrite существующие файлы. Узнал также, что владелец файлов "неизвестен", мне пришлось сменить владельца на 2 файла выше, чтобы теперь он принадлежал группе администраторов локального сервера, а затем переименовал его.

затем, наконец, это сработало.


Я получил эту ошибку, потому что я проверил "перераспределить все файлы в папку" на вкладке "файлы" окна "восстановить базу данных", но путь по умолчанию не существовал на моей локальной машине. У меня были файлы ldf/mdf в другой папке, как только я изменил, что я смог восстановить.