Ошибка mssql «5 (доступ запрещен.)» при восстановлении базы данных - PullRequest
64 голосов
/ 16 августа 2010

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

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

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

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

Ответы [ 13 ]

152 голосов
/ 21 июня 2013

У меня недавно была эта проблема.Для меня исправлением было перейти на страницу «Файлы» диалогового окна «Восстановление базы данных» и установить флажок «Переместить все файлы в папку». Restore Database dialog

79 голосов
/ 16 августа 2010

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

enter image description here

9 голосов
/ 25 апреля 2017

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

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

Шаги для разрешения -

  1. Открыть Sql Server Configuration manager
  2. Справа click on SQL Server (MSSQLSERVER)
  3. Перейти к Properties

enter image description here

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

enter image description here

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

3 голосов
/ 16 марта 2012

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

2 голосов
/ 13 июля 2019

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

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

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

0 голосов
/ 28 ноября 2017

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

0 голосов
/ 07 октября 2017

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

Обнаружил, что там раньше была БД с тем же именем, а файлы MDF и LDF все еще физически расположеныв папках данных и журналов сервера, но фактические метаданные отсутствуют в базах данных sys.d.служебная учетная запись сервера SQL также не может перезаписать существующие файлы.Также выяснилось, что владелец файлов «неизвестен», мне пришлось сменить владельца на 2 файла, указанные выше, чтобы он теперь принадлежал группе администраторов локального сервера, а затем переименовал его.это сработало.

0 голосов
/ 08 сентября 2017

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

0 голосов
/ 10 марта 2016

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

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

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

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

0 голосов
/ 10 февраля 2015

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

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

Наконец, затем дайте ему полное разрешение для предоставления полного доступа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...