Подтвердить что ты не робот

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

Я хочу восстановить базу данных из файла (Tasks- > Restore- > Database, после выбора из устройства и выбрать файл) через студию управления SQL-сервером.

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

Операционная система вернула ошибку "5 (Access denied.)" при попытке 'RestoreContainer:: ValidateTargetForCreation' в 'E:\Program Files\Microsoft SQL  Сервер \MSSQL10.MSSQLSERVER\MSSQL\DATA\XXXXXX.mdf. Msg 3156, уровень 16, состояние 8, сервер XXXX, строка 2

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

4b9b3361

Ответ 1

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

enter image description here

Ответ 2

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

Ответ 3

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

Мне нужно было изменить только значение log On As.

Шаги по устранению -

  • Открыть Sql Server Configuration manager
  • Правильно click on SQL Server (MSSQLSERVER)
  • Перейдите к Properties

введите описание изображения здесь

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

введите описание изображения здесь

Надеясь, что это тоже поможет:)

Ответ 4

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

Ответ 5

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

Попробуйте следующее:

В окне мастера восстановления базы данных DB перейдите на вкладку "Файлы", измените назначение восстановления с C: на другой диск. Затем продолжайте процесс регулярного восстановления. Он обязательно получит восстановление успешно!

Надеюсь, это тебе тоже поможет. Приветствия:)

Ответ 6

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

CREATE LOGIN BackupRestoreAdmin WITH PASSWORD='[email protected]$$w0rd'
GO
CREATE USER BackupRestoreAdmin FOR LOGIN BackupRestoreAdmin
GO
EXEC sp_addsrvrolemember 'BackupRestoreAdmin', 'dbcreator'
GO
EXEC sp_addrolemember 'db_owner','BackupRestoreAdmin'
GO

Ответ 7

В моем случае я должен был установить флажок в Overwrite the existing database (WITH REPLACE) на вкладке Options на странице Restore Database.

Причина, по которой я получал эту ошибку: потому что для базы данных уже был MDF файл, и он не перезаписывался.

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

Ответ 8

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

Ответ 9

Я попробовал вышеуказанный сценарий и получил ту же ошибку 5 (доступ запрещен). Я сделал глубокое погружение и обнаружил, что файл .bak должен иметь доступ к учетной записи службы SQL. Если вы не уверены, введите services.msc в Start → Run, затем проверьте учетную запись для входа в SQL Service.

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

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

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

Ответ 10

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

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

Тогда, наконец, это сработало.

Ответ 11

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

Ответ 12

Учетная запись не имеет доступа к расположению для файла резервной копии. Выполните следующие действия, чтобы легко получить доступ к диспетчеру конфигурации SQL Server через диспетчер компьютеров.

  1. Нажмите клавишу Windows + R, чтобы открыть окно "Выполнить".
  2. Введите compmgmt.msc в поле Открыть:
  3. Нажмите ОК.
  4. Разверните Сервисы и Приложения.
  5. Разверните диспетчер конфигурации SQL Server.
  6. Изменить учетную запись пользователя на вкладке " Вход в систему как ".

Теперь вы можете легко восстановить базу данных

Ответ 13

Хорошее решение, которое может работать, это перейти к файлам> и проверить перераспределение всех файлов

Files relocate

Ответ 14

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