2015-12-30 2 views
0

Я пытаюсь восстановить файл резервной копии базы данных (.bak) во вновь созданной базе данных с использованием C#. Я получаю следующее внутреннее исключение:C# Исключение: RESTORE DATABASE заканчивается ненормально

Не удается открыть устройство резервного копирования '\ GC.bak'. Ошибка операционной системы 5 (Доступ запрещен.).
RESTORE DATABASE ненормально завершения

Мой сервер является LocalDB.

void RestoreDB(string name) 
{ 
    var connection = new ServerConnection(Properties.Settings.Default.Well); 

    var sqlServer = new Server(connection); 

    var rstDatabase = new Restore(); 
    rstDatabase.Database = name; 
    rstDatabase.Action = RestoreActionType.Database; 
    rstDatabase.Devices.AddDevice(AppDomain.CurrentDomain.BaseDirectory + "GC.bak", DeviceType.File); 
    rstDatabase.ReplaceDatabase = true; 
    rstDatabase.SqlRestore(sqlServer); 
} 
+0

Вы используете это с правами администратора? Просто мысль. –

+0

@PiyushParashar Я единственный пользователь. И моя учетная запись: admin –

+1

Рассмотрите возможность использования System.Environment.CurrentDirectory вместо AppDomain.CurrentDomain.BaseDirectory. – enkryptor

ответ

0

По умолчанию SQL Server имеет доступ только к нескольким конкретным местам на диске сервера (то есть база данных по умолчанию и расположение резервных копий папок). Похоже, что вы, вероятно, пытаетесь восстановить файл из нестандартного местоположения, поэтому вам нужно предоставить разрешения учетной записи службы, которую SQL-сервер работает в этом каталоге, или даже проще, скопировать файл резервной копии в обычный резервное копирование и повторите попытку.

+0

Я поместил mdf в местоположение по умолчанию. C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA. Или это местоположение моего .bak-файла, о котором вы говорите? –

+0

Бак-файл является тем, что вызывает у вас проблемы. –

+0

Как предоставить разрешение MSSQLSERVER для определенной папки (моя папка bak)? Я имею в виду, какое имя я ставлю в систему безопасности? –

Смежные вопросы