SQL Server恢复错误 – 访问被拒绝

我在本地机器上创build了一个数据库,然后做了一个叫tables.bakDataLabTables的备份。

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

System.Data.SqlClient.SqlError:在“c:\ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ DataLabTables”上尝试“RestoreContainer :: ValidateTargetForCreation”时,操作系统返回错误“5(Access is denied。密度纤维板”。

如果这是问题,我该如何解决我的权利?

我刚刚在SQL Server 2012中遇到了这个问题。

事实certificate,我所要做的只是在“文件”部分勾选标记为“将所有文件重新定位到文件夹”的框:

在这里输入图像说明

(点击查看原图)

这当然假定您安装了正确版本的SQL Server。

从错误消息中可以看到,在validation还原操作的目标c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables.mdf )时出现错误。

这听起来像:

a)该文件已经存在(因为您以前已经恢复过)并且正在被SQL Server使用

要么

b)该目录根本不存在

在你的问题中,你提到你为该表创build了一个备份 – 这不是SQL Server备份的工作方式。 这些备份始终是整个数据库(或者该数据库中的至less一个或多个文件组)。

我的预感是:您以前已经恢复了该数据库,现在,在第二次恢复时,您没有选中恢复向导中的“覆盖现有数据库”checkbox – 因此现有文件不能被覆盖,恢复失败。

在远程服务器上运行还原的用户显然无法访问远程服务器上的该目录。

C:\program files\....是一个受保护的目录 – 正常(非pipe理员)用户无权访问此目录(及其子目录)。

最简单的解决scheme:尝试把你的BAK文件放在别的地方(例如C:\temp )并从那里恢复

我遇到了同样的问题。 事实certificate,我的SQL ServerSQL Server Agent服务logon as是在没有写访问权限的Network Services帐户下运行备份还原的。

我更改了这两个服务以login为Local System Account ,这解决了这个问题。

最近,我遇到了这个问题与SQL 2008 R2和下面的解决scheme为我工作:

1)创build一个与你要恢复的数据库同名的新数据库2)在恢复时,使用上面使用的同名,并在选项中单击覆盖选项

如果其他解决scheme不起作用,您可以给上述一个镜头。

备份创build者安装了MSSql版本10,所以当他进行备份时,它也存储原始的文件path(为了能够恢复在同一位置),但我有版本11,所以无法find目标目录。

所以我把输出文件目录改为C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ DATA \,并且能够成功恢复数据库。

资源

我有一个类似的问题。 我试图恢复一个2005年.bak文件,我收到完全相同的错误。 我select了覆盖选项以及无济于事。

我的解决scheme是通过访问文件夹并通过属性屏幕编辑访问权限,授予SQL用户访问相关目录的权限。

这个问题也损失了几个小时。 得到它虽然:

在我的情况“拒绝访问”确实意味着“访问被拒绝”。 我的Windows设备上的mssqlstudio用户帐户没有完全控制错误消息中指定的文件夹。 我完全控制了它。 访问不再被拒绝,恢复成功。

为什么该文件夹被locking为工作室? 谁知道 ? 我有足够的问题来处理,因为它没有试图回答更多。

另一种情况可能是多个数据库path的存在。 首先记下当前存储新数据库的path。 因此,如果您创build一个新的空数据库,然后执行Tasks/Restore ,请确保恢复尝试使用的path与创build空数据库的目录相同。即使恢复path合法,您仍将获得如果访问不是当前正在使用的path,则拒绝访问错误。 当path不合法时很容易发现,当path合法时更难以发现,而不是当前path。

对不起,因为我不能评论…

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

这可能不是最好的解决scheme,但是我试图在SQL Server 2005中进行还原,但是我更改为SQL Server 2008并且工作正常。

有这样的问题。 在SQL Server文件夹上启用压缩导致的错误。

Frnds …我有同样的问题,restroring数据库和尝试每个解决scheme,但无法得到解决。 然后,我试图重新安装SQL 2005和解决的问题。 实际上我上次忘记检查自定义选项,而安装SQL ..它来了两次,而安装,我检查它只有..

我的情况有点独特。 一切都是靠书本做的,但是还是失败了。
当然,也尝试了这里所build议的人们 – 还是没有任何工作。

最后,这是由于一些聪明的想法创build一个名为“ databasename.mdf ”的文件夹

SQL不断抱怨它没有写入c:\path\ databasename.mdf和我确保所有的NTFS权限在那里,服务运行在特定的用户…
…一直只是一个不愉快的命名文件夹。

希望这有助于避免灰色头发的人:-)

尝试这个:

在“还原数据库向导”窗口中,转到“文件”选项卡,取消选中“将所有文件重定位到文件夹”checkbox,然后将还原目标从C:更改为其他某个驱动器。 然后继续进行常规恢复过程。 它会成功恢复。

我有同样的问题,但我使用SQL Server 2008 R2,你必须检查选项,并validationSQL将保存文件.mdf和.ldf的path,您必须select您的SQL Server安装的path。 我解决了我的问题,我希望它可以帮助你。

然后尝试将其移到C:下的子文件夹中,但请确认用户对您使用的文件夹有完整的权限。