恢复数据库时mssql'5(访问被拒绝。)'错误

时间:2010-08-16 15:03:19

标签: sql-server ssms

我想通过SQL Server管理工作室从文件(任务 - >恢复 - >数据库;从设备中选择并选择文件后)恢复数据库。

之后,我收到此错误:

  

操作系统在尝试时返回错误“5(访问被拒绝。)”   'E:\ Program Files \ Microsoft SQL上的'RestoreContainer :: ValidateTargetForCreation'    服务器\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ XXXXXX.mdf”。   Msg 3156,Level 16,State 8,Server XXXX,Line 2

如何解决此问题?这是安全错误吗?

15 个答案:

答案 0 :(得分:151)

我最近遇到了这个问题。我的修复方法是转到“还原数据库”对话框的“文件”页面,然后选中“将所有文件重新定位到文件夹”。Restore Database dialog

答案 1 :(得分:76)

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

enter image description here

答案 2 :(得分:10)

嗯,在我的情况下,解决方案非常简单直接。

我只需更改 log On As 值的值。

解决的步骤 -

  1. 打开 Sql Server Configuration manager
  2. 正确 click on SQL Server (MSSQLSERVER
  3. 转到 Properties
  4. enter image description here

    1. log On As 值更改为 LocalSystem
    2. enter image description here

      希望这也会对您有所帮助:)

答案 3 :(得分:4)

我遇到了同样的问题,但有一个不同的解决方案。基本上我在我的计算机上安装了SQL Server和SQL Server Express。当我尝试恢复到SQL Express时这不起作用,但在将其恢复到SQL Server时工作正常。

答案 4 :(得分:2)

该帐户无权访问备份文件的位置。 采取以下步骤轻松地通过计算机管理器访问SQL Server配置管理器

  1. 单击 Windows键+ R 打开“运行”窗口。
  2. 在“打开”框中键入 compmgmt.msc
  3. 点击确定
  4. 展开服务和应用程序
  5. 展开 SQL Server配置管理器
  6. 登录身份标签中更改用户帐户。

现在您可以轻松地还原数据库

答案 5 :(得分:1)

我找到了这个,它对我有用:

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

答案 6 :(得分:1)

如果您要附加数据库,请查看"要附加的数据库"网格,特别是在您指定.mdf文件后的“所有者”列中。记下该帐户并为mdf和ldf文件提供完全权限。

答案 7 :(得分:1)

我尝试了上述方案并得到了相同的错误5(访问被拒绝)。我深入研究并发现.bak文件应该可以访问SQL服务帐户。如果您不确定,请在开始 - >中键入services.msc。然后运行,检查SQL Service登录帐户。

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

最后,请给予完全许可,以便提供完全访问权限。

然后从SSMS尝试恢复备份。

答案 8 :(得分:1)

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

试试这个:

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

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

答案 9 :(得分:1)

我收到此错误是因为我在“还原数据库”窗口的“文件”选项卡中选中了“将所有文件重新分配到文件夹”,但我的本地计算机上不存在默认路径。我把ldf / mdf文件放在另一个文件夹中,一旦我改变了,我就可以恢复了。

答案 10 :(得分:0)

在我的情况下,我必须选中Overwrite the existing database (WITH REPLACE)页面上Options标签下的Restore Database框。

我收到此错误的原因是:因为数据库中已存在MDF文件且未被覆盖。

希望这会对某人有所帮助。

答案 11 :(得分:0)

我遇到了完全相同的问题,但我的解决方案有所不同 - 我的公司正在加密我机器上的所有文件。在解密文件之后,MSSQL没有任何访问和创建数据库的问题。只需右键点击 .bak文件 - > 属性 - > 高级... - > 加密内容以保护数据。 Decrypting

答案 12 :(得分:0)

今天早些时候发生这种情况,我是本地服务器管理员组的成员并且访问畅通无阻,或者我是这么认为的。我还勾选了#34;替换"选项,即使实例中没有这样的数据库。

发现那里曾经有过同名的DB,MDF和LDF文件仍然物理上位于服务器的数据和日志文件夹中,但sys.databases中缺少实际的元数据。 SQL Server的服务帐户也无法编写现有文件。还发现了文件'所有者是"未知",我必须将所有权更改为上面的2个文件,以便它现在由本地服务器的管理员组拥有,然后重命名。

最后,它奏效了。

答案 13 :(得分:0)

一个可行的解决方案是转到文件>,然后检查重新分配所有文件

Files relocate

答案 14 :(得分:0)

对我来说,解决方法是在尝试还原数据库并将路径更改为新路径时进入“选项”。 Here is the screenshot