我正在尝试使用C#将数据库备份文件(.bak
)还原到新创建的数据库。我得到以下内部异常:
无法打开备份设备' \ 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)
默认情况下,SQL Server只能访问服务器驱动器上的几个特定位置(即默认数据库和备份文件夹位置)。看起来您可能正在尝试从非标准位置恢复文件,因此您需要向SQL Server在该目录下运行的服务帐户授予权限,或者更容易,将备份文件复制到常规备份文件位置,然后重试。