解决。看到我的回答(但首先看到我对问题的第二次编辑)。
我正在尝试从另一台计算机上恢复数据库的备份 - 从而复制数据库,但我收到此消息:
System.Data.SqlClient.SqlError:操作系统返回了 尝试时错误'5(访问被拒绝。)' 'c:\ Program'上的'RestoreContainer :: ValidateTargetForCreation' Files \ Microsoft SQL Server ......'。 (Microsoft.SqlServer.SmoExtended)
这是为什么?我可以创建新数据库,为什么不恢复呢?是因为它来自另一台电脑吗? (我读到这实际上是复制数据库的常用方法,因此不应该成为问题。)
我对此没有多少经验,所以不排除任何明显的解释。
编辑:
我可以使用管理员用户帐户将其“恢复”到SQL Server的管理员的实例(我有两个 - 一个用于管理员,一个用于常规帐户。)但不能从 帐户到常规用户的 SQL Server实例。
编辑2:
似乎已经存在文件和备份的文件名(即使我更改了现有的 db的名称)。我现在正在努力(尝试,但仍未成功,恢复到不同的文件名)。
答案 0 :(得分:6)
解决方案是确保数据库是在 MSSQL11.MSSQLSERVER 文件夹中创建的(而不是 MSSQL10_50.SQLEXPRESS 文件夹)。然后SSMS成功“恢复”数据库。
答案 1 :(得分:6)
我刚收到SQLSERVER14的错误。我所做的只是检查恢复向导的文件选项卡中的“将所有文件重新定位到文件夹”复选框。
数据库已成功恢复。
答案 2 :(得分:1)
面对类似的问题。 Windows安全程序阻止将数据库还原到“目标”#39;地点。修复安全设置可以解决此问题。
右键单击Target文件夹 - >属性 - >安全 - >选择适当的用户,然后编辑权限(我已授予用户完全权限)。希望这能解决问题。
答案 3 :(得分:0)
收到此错误消息后,我的.bak文件位于我的桌面上(例如“ C:\ Users \ [用户名] \ Desktop \ database.bak”)。
当我将.bak文件移动到C驱动器时,还原成功。