我想通过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
如何解决此问题?这是安全错误吗?
答案 0 :(得分:151)
我最近遇到了这个问题。我的修复方法是转到“还原数据库”对话框的“文件”页面,然后选中“将所有文件重新定位到文件夹”。
答案 1 :(得分:76)
运行sql server的帐户无权访问您拥有备份文件或尝试将数据库还原到的位置。您可以使用 SQL Server配置管理器查找用于运行SQL Server实例的帐户,然后确保该帐户可以完全控制.BAK文件和将恢复MDF的文件夹到。
答案 2 :(得分:10)
嗯,在我的情况下,解决方案非常简单直接。
我只需更改 log On As
值的值。
解决的步骤 -
答案 3 :(得分:4)
我遇到了同样的问题,但有一个不同的解决方案。基本上我在我的计算机上安装了SQL Server和SQL Server Express。当我尝试恢复到SQL Express时这不起作用,但在将其恢复到SQL Server时工作正常。
答案 4 :(得分:2)
该帐户无权访问备份文件的位置。 采取以下步骤轻松地通过计算机管理器访问SQL Server配置管理器
现在您可以轻松地还原数据库
答案 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文件 - > 属性 - > 高级... - > 加密内容以保护数据。
答案 12 :(得分:0)
今天早些时候发生这种情况,我是本地服务器管理员组的成员并且访问畅通无阻,或者我是这么认为的。我还勾选了#34;替换"选项,即使实例中没有这样的数据库。
发现那里曾经有过同名的DB,MDF和LDF文件仍然物理上位于服务器的数据和日志文件夹中,但sys.databases中缺少实际的元数据。 SQL Server的服务帐户也无法编写现有文件。还发现了文件'所有者是"未知",我必须将所有权更改为上面的2个文件,以便它现在由本地服务器的管理员组拥有,然后重命名。
最后,它奏效了。
答案 13 :(得分:0)
一个可行的解决方案是转到文件>,然后检查重新分配所有文件
答案 14 :(得分:0)
对我来说,解决方法是在尝试还原数据库并将路径更改为新路径时进入“选项”。 Here is the screenshot