无法打开备份设备.操作系统错误5

Smi*_*ley 131 backup access-denied permission-denied sql-server-2008

下面是我用来备份(创建.bak)我的数据库的查询.

但是,每当我运行它时,我总是收到此错误消息:

消息3201,级别16,状态1,行1
无法打开备份设备'C:\ Users\Me\Desktop\Backup\MyDB.Bak'.操作系统错误5(访问被拒绝.).

消息3013,级别16,状态1,行1
BACKUP DATABASE异常终止.

这是我的查询:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Rob*_*sey 223

是的,我只是得到了这个.

查看Windows服务.开始>管理>服务

在名单中找到服务:SQL Server(MSSQLSERVER)查找"登录为"列(如果列表中不存在,则需要添加它).

这是您为目录授予权限所需的帐户,右键单击资源管理器>属性>共享(和安全性)

注意:如果您要通过网络,请记住将权限授予实际目录和共享.

应用并等待权限传播,再次尝试备份.

注意2:如果您通过网络备份并且您的SQL作为"本地服务"运行,则您遇到麻烦...您可以尝试分配权限,或者可以更轻松地在SQL Server外部进行本地备份和xcopy(一小时后).

注意3:如果您作为网络​​服务运行,则有时远程计算机将无法识别SQL Server上的网络服务.如果是这种情况,您需要为实际计算机本身添加权限,例如.MyServer的$.

  • 权限/添加/高级没有在列表中找到用户,但我粘贴在"NT Service\MSSQLSERVER"中,它就像一个冠军. (19认同)
  • 为我工作,很棒的解决方案!我正在使用SQL Server Express 2014,因此您需要为'NT Service\MSSQL $ SQLEXPRESS'提供写入权限. (7认同)
  • 取决于,如果是真正公开的未经认证的那个,那么是的.如果它是"任何经过身份验证的",那么远程机器上的LOCAL SERVICE通常不符合条件......但是你真的想让每个人都能访问,对我们来说这是一个近乎可以解雇的攻击. (3认同)
  • 为文件夹添加"所有人"权限是否包含此内容? (2认同)

Rag*_*hav 13

为了找出您需要授予哪个用户执行恢复过程的权限,您可以按照以下步骤操作:

您需要转到安装了 SQL Server 的服务器。查找SQL Server 配置管理器

在此输入图像描述

接下来,您需要转到“SQL Server 服务”

在此输入图像描述

在您的 SQL Server (MSSQLSERVER) 实例下,将有一个带有“登录身份”列的帐户,在我的例子中,它是NT Service\MSSQLSERVER

您需要在源 .bak 位置的“安全”选项卡下添加该帐户,并授予该用户“读取”权限,以便可以读取备份文件。

假设您的备份文件位于“D:\Shared”文件夹中,那么您需要授予如下权限:

在此输入图像描述


小智 11

转到开始菜单中的SQL Server文件夹并单击配置工具选择SQL Server配置管理器在SQL Server服务上,在所需实例上将(登录为)更改为本地系统


Gau*_*tya 10

发生这种情况的原因之一是您正在运行 MSSQLSERVER 服务而不是使用本地系统。要解决此问题,请使用以下步骤。

  1. 使用 Windows + R 打开运行
  2. 键入 services.msc,将打开一个服务对话框
  3. 查找 SQL Server (MSSQLSERVER)
  4. 右键单击并单击属性。
  5. 转到登录选项卡
  6. 选择本地系统帐户,然后单击“应用”和“确定”
  7. 通过选择“SQL Server (MSSQLSERVER)”单击左侧面板上的“停止”链接,并在完全停止后再次启动它。
  8. 享受你的备份。

希望它对你有帮助,就像它对我一样。干杯!


Mar*_*ith 7

SQL Server服务帐户没有写入该文件夹的权限 C:\Users\Kimpoy\Desktop\Backup\

  • 如何授予SQL Server服务帐户访问此文件夹的权限?:) (22认同)

小智 6

我最近也遇到过这个问题,但是我从服务器A运行备份作业,但正在备份的数据库在服务器B上到服务器C上的文件共享.当服务器A上的代理告诉服务器B运行备份时-sql命令,它实际上是在SERVER B上运行sql的服务帐户,它尝试将备份写入服务器C.

请记住,执行实际BACKUP DATABASE命令的sql server的服务帐户是需要文件系统特权而不是代理的特权.


Saw*_*kas 6

我在 Windows 10 上使用 SQL Express 2014 SP1 时遇到了同样的问题。

有效的解决方案

  1. 通过键入服务打开服务
  2. 找到并打开 SQL Server (SQLExpress)
  3. 转到登录选项卡
  4. 选择本地系统帐户(同时检查允许服务与桌面交互)
  5. 单击“确定”。停止服务。重新启动服务。
  6. 问题解决了


小智 5

我自己刚刚经历过这个。我已经确保我的 MSSQLSERVER 登录用户有,full access但它仍然导致问题。只有当我将目标移动到 C 的根目录时,它才起作用。更重要的是,从用户文件夹中移出(即使我拥有具有完全权限的共享 - 甚至尝试“每个人”作为测试)。

我不知道我是否认为我的问题“已解决”,但它正在“工作”。

仅供遇到此线程的任何其他用户参考。