恢复备份时访问被拒绝。

20

我正在尝试将一个.bak备份文件恢复到本地数据库服务器,但一直收到错误信息。

执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)
无法打开备份设备“C:\Clients\SQLitis\jMKZ.bak”。操作系统错误 5(拒绝访问)。
RESTORE HEADERONLY 正常终止。(Microsoft SQL Server, 错误: 3201)

不知道该从哪里开始调试。我使用的是管理员帐户,拥有完全的权限,因此不应该有任何阻止我的操作,但我仍然收到错误消息。


3
@casperOne,当那个问题没有相同的错误信息时,怎么能将那个问题视为这个问题的重复呢?请问您如何解决? - Ryan Lundy
3个回答

30

看起来SQL Server运行的服务账户没有C:\Clients\SQLitis文件夹的权限。

安装SQL Server时,希望设置使用一个域用户账户(“服务账户”),该账户不是机器上的管理员。因此,SQL Server安装程序只授予权限给SQL Server安装程序创建的文件夹。


我必须授予服务帐户对文件夹和文件的权限。非常感谢! - George Norberg
1
太好了!为了让服务账户能够访问该文件,我右键点击了文件夹,在属性/安全中添加了“everyone”。之后我就可以进行恢复操作了。 - UnDiUdin
对于所有在 LOG SHIPPING 方面遇到问题的人,已经向 SQL Server Agent 用户授予了文件夹权限以允许其将备份文件复制到该位置 - 这还不够,SQL Server DB 引擎服务帐户也需要具有相应的权限。这就是我刚刚爬出来的陷阱 :) - Magier
如果是这种情况,为什么不将模式改回混合模式,以便您可以使用作为本地管理员的域帐户呢?有关此步骤的说明可以在此处找到:https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/change-server-authentication-mode#to-change-security-authentication-mode - Dan Csharpster

8

2
也许有点取巧,但我通过将.bak文件复制到指定的备份文件夹中解决了这个问题。这样我就不必更改任何权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接