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

时间:2010-10-18 14:40:57

标签: sql-server-2008 backup access-denied permission-denied

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

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

  

Msg 3201,Level 16,State 1,Line 1
  无法打开备份设备'C:\ Users \ Me \ Desktop \ Backup \ MyDB.Bak'。操作系统错误5(访问被拒绝。)。

     

Msg 3013,Level 16,State 1,Line 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';

提前致谢。

21 个答案:

答案 0 :(得分:212)

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

查看Windows服务。开始&gt; <给药>服务

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

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

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

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

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

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

答案 1 :(得分:9)

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

答案 2 :(得分:7)

SQL Server服务帐户无权写入文件夹C:\Users\Kimpoy\Desktop\Backup\

答案 3 :(得分:6)

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

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

答案 4 :(得分:4)

我自己就是这样做的。我确保我的MSSQLSERVER登录用户有full access,但它仍然导致问题。它只在我将目标移动到C的根目录时才起作用。更重要的是,在用户文件夹之外(即使我有一个具有完全权限的共享 - 甚至尝试过“Everyone”作为测试)。

我不知道我是否认为我的问题是“固定的”,但它是“正常工作”。

对于遇到此主题的任何其他用户来说,只是一个FYI。

答案 5 :(得分:3)

为了找出需要授予权限的用户来执行还原过程,可以执行以下步骤:

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

enter image description here

下一步,您需要转到“ SQL Server服务”

enter image description here

在您的SQL Server(MSSQLSERVER)实例下,将有一个“登录为”列的帐户,在我的情况下是 NT Service \ MSSQLSERVER

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

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

enter image description here

答案 6 :(得分:3)

我在Windows 10上遇到与SQL Express 2014 SP1相同的问题。

解决哪个工作

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

答案 7 :(得分:2)

我有类似的问题。我添加了.bak文件本身的写权限,以及我为NETWORK SERVICE用户编写备份的文件夹。要添加权限,只需右键单击要更改的文件/目录,选择安全选项卡,然后在其中添加适当的用户/权限。

答案 8 :(得分:2)

以下是我通过该问题所做的工作。

1)转到备份

2)删除目标文件路径到磁盘

3)点击添加

4)在文件名:复选框中手动输入.. \ backup之后的备份名称,如下所示,其中Yourdb.bak是数据库备份名称

C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ Yourdb.bak

5)单击确定

希望这有帮助!

答案 9 :(得分:1)

我知道这不是一个确切的解决方案,但使用外部驱动器路径可以解决这个问题。

BACKUP DATABASE AcinsoftDB
TO DISK = 'E:\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

答案 10 :(得分:1)

答案 11 :(得分:0)

请检查对驱动器的访问权限。首先创建一个文件夹并转到文件夹属性,

您可以找到安全标签,点击该标签检查您的用户是否具有访问权限。

如果找不到您的ID,请点击添加按钮,并为用户提供完全访问权限。

答案 12 :(得分:0)

Msg 3201,Level 16,State 1,Line 1 无法打开备份设备'C:\ Backup \ Adventure_20120720_1024AM.trn'。操作系统错误5(访问被拒绝。)。 Msg 3013,Level 16,State 1,Line 1 BACKUP LOG异常终止。

我在C盘上验证了备份文件夹,新服务帐户是否具有完全控制访问权限?我意识到“Test \ Kiran”服务帐户没有完全控制安全权限。

请按照以下步骤完全控制服务帐户:

  1. 转到C盘,右键单击备份文件夹。
  2. 选择“安全”标签。
  3. 点击编辑按钮,将打开新窗口。
  4. 点击添加按钮并输入Test \ Kiran用户帐户并单击检查名称按钮,这将验证您输入的用户是否存在,如果它已存在,将在窗口显示用户,选择确定。
  5. 选择您输入的用户名,然后选中允许下的完全控制复选框。

答案 13 :(得分:0)

共享此文件夹并使用UNC路径,例如:\ pc \ backups \ mydb.bak

然后你可以停止分享。

不是很优雅,但它解决了所有权限问题(您需要授予权限以便共享,如上所述)

答案 14 :(得分:0)

当.BAK文件临时存储在使用BitLocker加密的文件夹中时,我遇到了此问题。它在移动到另一个文件夹后保留了加密。

NETWORK SERVICE帐户无法解密该文件,并提供了详尽的错误消息。

在.BAK文件上删除BitLocker加密(通过取消选中&#34;加密内容以保护数据&#34;在文件属性中)解决了这个问题。

答案 15 :(得分:0)

我有同样的错误。以下更改帮助我解决了这个问题。

  

我必须检查服务器管理器 - &gt;工具 - &gt;服务并找到用户(“日志   On As“column”for service:SQL Server(SQLEXPRESS)。

     

我去了本地文件夹(C:\ Users \ Me \ Desktop \ Backup)并添加了“NT   Service \ MSSQL $ SQLEXPRESS“作为提供写入权限的用户。

答案 16 :(得分:0)

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

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

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

答案 17 :(得分:0)

SQL Server无法将备份访问(写入)到指定位置。

首先,您需要验证运行Sql Server的服务帐户。这可以通过使用配置管理器或Services.msc来完成。

使用以下查询:

SELECT  DSS.servicename,
    DSS.startup_type_desc,
    DSS.status_desc,
    DSS.last_startup_time,
    DSS.service_account,
    DSS.is_clustered,
    DSS.cluster_nodename,
    DSS.filename,
    DSS.startup_type,
    DSS.status,
    DSS.process_id FROM    sys.dm_server_services AS DSS;

现在查看service_account列并将其记下来。

转到您要进行备份的位置。在您的情况下:C:\ Users \ Me \ Desktop \ Backup

右键单击->属性->安全->

添加服务帐户并提供读/写权限。这样可以解决问题。

答案 18 :(得分:0)

在我的情况下,我忘记命名备份文件,并且该文件一直给我同样的权限错误:/

TO DISK N'{path}\WRITE_YOUR_BACKUP_FILENAME_HERE.bak'

答案 19 :(得分:0)

我通过以下三个步骤解决了相同的问题:

  1. 我将备份文件存储在其他工作正常的文件夹路径中。
  2. 查看安全性选项卡的两个文件夹的不同情况(如下图所示)。
  3. 在“安全性”选项卡文件夹中编辑权限不正确。

latest documentation

答案 20 :(得分:0)

我的问题是“文件所有权”设置为我的公司。我将其更改为“个人”并且它起作用了。右键单击该文件并单击“文件所有权>”选项,然后将其更改为“个人”。我相信通过 Microsoft Teams 发送的所有文件都会发生这种情况。