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

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

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

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


当前回答

在我的情况下,我必须仔细检查我正在恢复的数据库的备份路径。当我第一次做的时候,我已经从不同的路径恢复了它。我修复了备份路径,以使用我第一次使用的备份路径,它工作!

其他回答

抱歉,因为我不能评论…

我也有同样的问题。在我的情况下,问题与试图恢复在一个旧的sql server文件夹(存在于服务器上)有关。这是由于旧的sql server备份(即sql server 2012备份)在新的sql server (sql server 2014)中恢复。真正的问题与@marc_s的回答没有太大的不同。无论如何,我只是将目标文件夹更改为新的SQL Server DATA文件夹。

Another scenario could be the existence of multiple database paths. First, make note of the path where new databases are currently being stored. So if you create a new empty database and then do Tasks/Restore, make sure that the path the restore is trying to use is the same directory that the empty database was created in. Even if the restore path is legal, you will still get the access denied error if it is not the current path you are working with. Very easy to spot when the path is not legal, much harder to spot when the path is legal, but not the current path.

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

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

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

在我的情况下,我必须仔细检查我正在恢复的数据库的备份路径。当我第一次做的时候,我已经从不同的路径恢复了它。我修复了备份路径,以使用我第一次使用的备份路径,它工作!

我也有同样的问题。原来我的SQL Server和SQL Server代理服务登录时在网络服务帐户下运行,该帐户没有执行备份恢复的写访问权。

我将这两个服务都更改为以本地系统帐户登录,这就解决了问题。