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

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

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

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


当前回答

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

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

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

其他回答

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 Server文件夹启用压缩导致的错误。