mssql'5(Access is denied。)'在恢复数据库时出错

我想通过SQL Serverpipe理工作室从文件中恢复数据库(任务 – >恢复 – >数据库;从设备中select并select文件后)。

之后,我得到这个错误:

在“E:\ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ XXXXXX.mdf”上尝试“RestoreContainer :: ValidateTargetForCreation”时,操作系统返回错误“5(Access is denied。)”。 消息3156,级别16,状态8,服务器XXXX,第2行

我该如何解决这个问题? 这是一个安全错误?

运行sql server的帐户无权访问备份文件所在的位置,或者正在尝试将数据库还原到该位置。 您可以使用SQL Serverconfigurationpipe理器查找用于运行SQL Server实例的帐户,然后确保该帐户完全控制.BAK文件以及MDF将恢复到的文件夹。

在这里输入图像说明

我最近有这个问题。 对我来说,修复是去恢复数据库对话框的文件页面,并检查“重新定位所有文件到文件夹”。 还原数据库对话框

那么,就我而言,解决scheme非常简单直接。

我只能改变log On As值的值。

步骤来解决 –

  1. 打开Sql Server Configuration manager
  2. 右键click on SQL Server (MSSQLSERVER
  3. Properties

在这里输入图像说明

  1. log On As值更改为LocalSystem

在这里输入图像说明

希望这也能帮助你:)

我只是遇到了同样的问题,但有一个不同的修复。 本质上,我的计算机上安装了SQL Server和SQL Server Express。 当我尝试还原到SQL Express时,这不起作用,但在将它还原到SQL Server时正常工作。

我发现这一点,它为我工作:

 CREATE LOGIN BackupRestoreAdmin WITH PASSWORD='$tr0ngP@$$w0rd' GO CREATE USER BackupRestoreAdmin FOR LOGIN BackupRestoreAdmin GO EXEC sp_addsrvrolemember 'BackupRestoreAdmin', 'dbcreator' GO EXEC sp_addrolemember 'db_owner','BackupRestoreAdmin' GO 

如果您要连接数据库,请在查看“数据库连接”网格,特别是在指定了.mdf文件之后的“所有者”列中查看。 注意帐户,并给予mdf和ldf文件的完全权限。

我试过上面的情况,得到了同样的错误5(拒绝访问)。 我做了深入的研究,发现文件.bak应该有权访问SQL服务帐户。 如果您不确定,请在开始 – >运行中键入services.msc,然后检查SQL服务login帐户。

然后转到该文件,右键单击并select“属性”中的“安全”选项卡,然后进行编辑以添加新用户。

最后,给予完全的许可,以充分获得。

然后从SSMS尝试恢复备份。

我试图在SQL 2012数据库中恢复SQL 2008 R2备份数据库时遇到同样的错误。 我猜这个错误是由于没有足够的权限将.mdf和.ldf文件放在C盘中。 我尝试了一件简单的事情,然后成功地恢复了它。

尝试这个:

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

希望这也能帮助你。 干杯:)

在我的情况下,我不得不选中复Options Restore Database页面上的Options卡下的Overwrite the existing database (WITH REPLACE)的框。

我得到这个错误的原因是:因为已经有一个MDF文件存在数据库,它不会被覆盖。

希望这会帮助别人。

我有完全相同的问题,但我的修复是不同的 – 我的公司正在encryption我的机器上的所有文件。 解密MSSQL文件后没有任何问题访问和创build数据库。 只需右键单击.bak文件 – > 属性 – > 高级… – > encryption内容以保护数据。 解密

这发生在我今天早些时候,我是本地服务器的pipe理员组成员,并有无障碍的访问,或者我认为是这样的。 我也勾选了“replace”选项,即使在实例中没有这样的数据库。

发现那里曾经有同名的DB,MDF和LDF文件仍然在物理上位于服务器的数据和日志文件夹中,但是sys.databases中缺less实际的元数据。 SQL服务器的服务帐户也不能覆盖现有的文件。 还发现文件的所有者是“未知的”,我必须将所有权更改为上面的两个文件,以便它现在由本地服务器的pipe理员组拥有,然后重命名它。

最后,它的工作。