Не удается открыть устройство резервного копирования. Ошибка операционной системы 5 - PullRequest
125 голосов
/ 18 октября 2010

Ниже приведен запрос, который я использую для резервного копирования (создания .bak) моей базы данных.

Однако всякий раз, когда я запускаю его, я всегда получаю это сообщение об ошибке:

Сообщение 3201, Уровень 16, Состояние 1, Строка 1
Не удается открыть устройство резервного копирования «C: \ Users \ Me \ Desktop \ Backup \ MyDB.Bak». Ошибка операционной системы 5 (доступ запрещен.).

Сообщение 3013, Уровень 16, Состояние 1, Строка 1
РЕЗЕРВНАЯ БАЗА ДАННЫХ завершается ненормально.

Это мой запрос:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

Заранее спасибо.

Ответы [ 18 ]

215 голосов
/ 24 октября 2011

Да, я только что забил этот.

Посмотрите в службах Windows.Пуск> Администрирование> Службы

Найдите Службу в списке с именем: SQL Server (MSSQLSERVER) поищите столбец «Вход в систему как» (необходимо добавить его, если его нет в списке).

Это учетная запись, которая необходима для предоставления разрешений для каталога, щелкните правой кнопкой мыши в проводнике> Свойства> Общие ресурсы (и безопасность)

ПРИМЕЧАНИЕ : не забудьте дать разрешения дляфактический каталог И к общему ресурсу, если вы собираетесь по сети.

Примените и дождитесь разрешения для распространения, попробуйте снова выполнить резервное копирование.

ПРИМЕЧАНИЕ 2 : есливы выполняете резервное копирование по сети, и ваш SQL работает как «Локальная служба», тогда у вас возникли проблемы ... вы можете попробовать назначить разрешения, или может быть проще выполнить локальное резервное копирование и xcopy за пределами SQL Server (через час).

ПРИМЕЧАНИЕ 3 : Если вы работаете в качестве сетевой службы, то ИНОГДА удаленная машина не будет распознавать сетевое обслуживание на вашем SQL Server.Если это так, вам нужно добавить разрешения для самого компьютера, например.MyServer $.

9 голосов
/ 21 марта 2012

Перейдите в папку сервера SQL в меню «Пуск» и выберите «Инструменты настройки». Выберите диспетчер конфигурации SQL Server В службах сервера SQL в нужном экземпляре измените (Вход в систему как) на локальную систему

7 голосов
/ 18 октября 2010

Учетная запись службы SQL Server не имеет разрешения на запись в папку C:\Users\Kimpoy\Desktop\Backup\

6 голосов
/ 03 октября 2012

У меня тоже недавно была эта проблема, однако я выполнял задание резервного копирования с сервера A, но резервная копия базы данных находилась на сервере B в общую папку на сервере C. Когда агент на сервере A сообщает серверу B запустить команда резервного копирования t-sql, фактически это учетная запись службы, под которой работает sql на сервере SERVER B, которая пытается записать резервную копию на сервер C.

Помните, что именно служебная учетная запись сервера sql, выполняющего фактическую команду BACKUP DATABASE, - это то, что требует привилегий в файловой системе, а не в агенте.

4 голосов
/ 02 апреля 2014

Я просто проходил через это сам.Я удостоверился, что у моего логина MSSQLSERVER был full access, но он все еще вызывал проблемы.Это сработало только после того, как я переместил место назначения в корень C. Более того, из пользовательской папки (хотя у меня был общий ресурс с полными разрешениями - даже пробовал «Все» в качестве теста).

Я не знаюНе знаю, считаю ли я свою проблему «исправленной», однако она «работает».

Просто для справки любых других пользователей, которые сталкиваются с этой темой.

3 голосов
/ 06 октября 2018

Чтобы узнать, какому пользователю необходимо дать разрешение на выполнение процесса восстановления, вы можете выполнить следующие шаги:

Вам нужно перейти на ваш сервер, где установлен SQL Server. Найти Диспетчер конфигурации SQL Server

enter image description here

Далее вам нужно перейти в «Службы SQL Server»

enter image description here

Под вашим экземпляром SQL Server (MSSQLSERVER) будет учетная запись со столбцом «Вход в систему как», в моем случае это NT Service \ MSSQLSERVER .

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

Допустим, ваш файл резервной копии находится в папке "D: \ Shared", тогда вам нужно дать такие разрешения:

enter image description here

3 голосов
/ 26 июля 2016

У меня такая же проблема с SQL Express 2014 SP1 в Windows 10.

Раствор, который работает

  1. Откройте Сервис, набрав Сервисы
  2. Найдите и откройте SQL Server (SQLExpress)
  3. Перейти на вкладку LogOn
  4. Выберите учетную запись локальной системы (также проверьте, разрешено ли службам взаимодействовать с рабочим столом)
  5. Нажмите ОК. Остановите службу. Перезапустите сервис.
  6. Проблема решена
2 голосов
/ 19 апреля 2011

У меня была похожая проблема. Я добавил разрешения на запись в сам файл .bak и в свою папку, в которую я записывал резервную копию для пользователя NETWORK SERVICE. Чтобы добавить разрешения, просто щелкните правой кнопкой мыши файл / каталог, который вы хотите изменить, выберите вкладку безопасности и добавьте туда соответствующих пользователей / разрешений.

2 голосов
/ 29 августа 2016

Вот что я сделал, чтобы обойти проблему.

1) Перейти к резервной копии

2) Удалить путь к файлу назначения на диск

3) Нажмите Добавить

4) В поле Имя файла: вручную введите имя резервной копии после .. \ backup, как показано ниже, где Yourdb.bak - имя резервной копии базы данных

C: \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ Yourdb.bak

5) Нажмите OK

Надеюсь, это поможет!

1 голос
/ 28 марта 2013

У меня была такая же проблема, и приведенный ниже URL мне действительно помог.

Это может помочь и вам.

http://blog.sqlauthority.com/2011/04/13/sql-server-fix-error-msg-3201-level-16-cannot-open-backup-device-operating-system-error-5access-is-denied/

...