2010-10-18 120 views
108

下面是我用来备份(创建一个.bak)我的数据库的查询。无法打开备份设备。操作系统错误5

但是,每当我运行它,我总是得到这样的错误信息:

消息3201,级别16,状态1,行1
无法打开备份设备“C:\用户\我\桌面\备份\ 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'; 

在此先感谢。

+0

那么,错误信息很清楚,不是吗?程序运行的用户是什么? bak文件是否存在?你可以手动访问它吗? – 2010-10-18 14:41:55

+1

我们是否应该假设这是针对SQL Server的文件路径,因为您没有将产品放入标签或标题中? – Powerlord 2010-10-18 14:42:09

+0

在我重新格式化笔记本电脑之前,我能够运行此查询,如果它有任何帮助。这是SQL Server 2008,我以管理员身份运行。 bak文件不存在,因为我正在使用此查询创建它。 – Smiley 2010-10-18 14:45:49

回答

179

是的,我刚刚拿下了这一个。

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

在名为SQL Server(MSSQLSERVER)的列表中查找服务寻找“Log On As”列(如果列表中不存在,则需要添加它)。

这是你需要给权限的目录,右键单击资源管理器>属性>股份(和安全性)

注意帐户:记得给权限的实际目录和共享,如果你正在穿过网络。

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

注2::如果你在网络上备份和你的SQL运行作为“本地服务”,那么你有麻烦了......你可以尝试分配权限,或者它可能会更容易本地备份和XCOPY跨越SQL Server之外(一小时后)。

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

+13

权限/添加/高级没有找到列表中的用户,但我粘贴在“NT服务\ MSSQLSERVER”,它的工作就像一个冠军。 – 2012-05-30 20:01:44

+2

向文件夹添加“所有人”权限是否涵盖此内容? – DevDave 2013-05-28 14:30:38

+2

取决于,如果它是真正的公共未认证的,那么是的。如果是“任何认证”,那么远程机器上的本地服务通常不会符合条件......但是,您是否真的想让每个人都可以访问,对我们来说这是一种近乎解雇的攻击。 – 2013-05-28 23:03:43

7

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

+17

如何授予SQL Server服务帐户访问此文件夹的权限? :) – Smiley 2010-10-18 15:12:02

2

我有一个类似的问题。我向.bak文件本身添加了写入权限,并且我正在为NETWORK SERVICE用户写入备份的文件夹。要添加权限,只需右键单击要更改的文件/目录,选择安全选项卡,然后在其中添加相应的用户/权限。

+1

你的意思是什么? – Steam 2014-03-05 18:28:21

9

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

+0

优雅,谢谢 – 2016-12-08 16:02:44

6

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

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

0

消息3201,级别16,状态1,行 无法打开备份设备 'C:\备份\ Adventure_20120720_1024AM.trn'。操作系统错误5(访问被拒绝。)。 消息3013,级别16,状态1,行1 备份日志异常终止。

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

请按照下面的步骤来充分控制服务帐户:

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

请检查访问drives.First建立一个文件夹,并转到文件夹属性,

您可能会发现在安全选项卡,单击该检查是否具有访问或没有您的用户ID。

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

4

我只是经历了这个自己。我已确保我的MSSQLSERVER登录用户拥有full access,但仍然存在问题。只有当我将目标移动到C的根目录时,它才起作用。更重要的是,在用户文件夹之外(尽管我拥有完全权限的共享 - 甚至尝试过“Everyone”作为测试)。

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

只是一个FYI的任何其他用户遇到此线程。

+0

我认为这是由于企业域具有驻留在网络驱动器上的用户路径,因此无论用户登录哪台机器,都可以透明地访问它们。比如这种情况:http://superuser.com/a/730519 – Bon 2016-03-23 15:28:42

1

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

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

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

的溶液,其中打字服务工作

  1. 开放服务
  2. 找到并打开SQL服务器(的SQLExpress)
  3. 转到登录选项卡
  4. 选择本地系统账户(也请检查是否允许与桌面交互的服务)
  5. 单击确定。停止服务。重新启动服务。
  6. 问题解决了
2

这是我做了什么来绕过这个问题。

1)进入备份

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

3)点击添加

4)在文件名:复选框备份手动型后命名.. \备份了下方Yourdb.bak是数据库备份名称

C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL11.MSSQLSERVER \ MSSQL \备份\ Yourdb.bak

5)点击确定

希望这有助于!

0

共享此文件夹,并使用UNC路径,通过例如:\ PC \备份\ Mydb.bak中还原

那么你可以停止共享。

不是很优雅,但它解决所有问题的权限(你需要给权限,以及分享,如上所述)

0

我遇到此问题时.bak文件临时存储与加密的文件夹中BitLocker的。它在移动到另一个文件夹后保留加密。

网络服务帐户无法解密该文件,并给出了全面的信息性错误消息。

删除BitLocker加密(通过取消选中“加密内容以便保护数据”在文件属性)的.bak文件解决了这个问题。

0

嗨,你需要查询的改变:

BACKUP DATABASE AcinsoftDB 
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak' 

BACKUP DATABASE AcinsoftDB 
TO DISK = N'C:\Users\Me\Desktop\Backup\MyDB.Bak' 

您必须添加一个N的前面的路对我的作品。

0

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

我不得不检查服务器管理器 - >工具 - >服务,找到用户(“登录 作为”列)服务:SQL服务器(SQLEXPRESS)。

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

相关问题