我在本地机器上创建了一个数据库,然后对表DataLabTables进行了名为tables.bak的备份。

我将备份移动到远程机器,没有该表,并尝试进行恢复,但得到以下错误:

sqlclient . sqlerror:操作系统返回 尝试访问时错误'5(访问被拒绝。)' 'RestoreContainer::ValidateTargetForCreation'在c:\程序 文件\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables.mdf `。

如果这是问题所在,我该如何修正我的权利?


当前回答

备份创建者安装了MSSql版本10,因此当他进行备份时,它还存储了原始文件路径(以便能够在相同的位置恢复它),但我使用的是版本11,因此它无法找到目标目录。 所以我把输出文件的目录改为C:\Program Files\Microsoft SQL Server\MSSQL11。MSSQLSERVER\MSSQL\DATA\,它能够成功地恢复数据库。

其他回答

最近我用SQL 2008 R2遇到了这个问题,下面的解决方案对我有用:

1)创建一个与您试图恢复的数据库同名的新数据库 2)在恢复时,使用与上面使用的名称相同的选项,单击覆盖选项

如果其他解决方案不奏效,你可以尝试上面的方法。

如果路径是正确的,但服务帐户不是数据文件的所有者(但它仍然有足够的读/写访问权限),也会发生这种情况。如果将文件的权限重置为与文件夹的权限匹配(当然,在服务停止时),就会发生这种情况。

在这种情况下,最简单的解决方案是分离每个数据库并再次附加它(因为在附加时所有者将更改为服务帐户)。

我刚刚有这个问题与SQL Server 2012。

结果证明,我所要做的就是在“文件”部分勾选“将所有文件重新定位到文件夹”:

(点击查看图片完整尺寸)

当然,前提是你安装了正确的SQL Server版本。

我有同样的问题,但我使用sql server 2008 r2,你必须检入选项并验证sql将保存文件.mdf和.ldf的路径,你必须选择你的sql server安装的路径。我用这个解决了我的问题,希望它能帮助到你。

Frnds……我在恢复数据库时遇到了同样的问题,并尝试了所有解决方案,但无法解决。然后我尝试重新安装SQL 2005,问题解决了。实际上,上次我在安装SQL时忘记检查自定义选项..它来两次安装和我检查它只有一个..