相关文章推荐
害羞的针织衫  ·  虚幻引擎 - 知乎·  1 年前    · 
一身肌肉的茄子  ·  asp.net core ...·  1 年前    · 
性感的大象  ·  Window setTimeout() ...·  1 年前    · 

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';
    
5 个评论
嗯,错误信息很清楚,不是吗?程序是以什么用户运行的?bak文件是否存在?你能手动访问它吗?
既然你没有把产品放在标签或标题中,我们是否应该从文件路径中假设这是为SQL Server准备的?
在我重新格式化我的笔记本电脑之前,我能够运行这个查询,如果它有任何帮助。这是SQL Server 2008,我是以管理员身份运行的。bak文件并不存在,因为我正在用这个查询创建它。
@笑脸。你必须通过你的本地读取SQL文件,而不是网络。因此,这意味着你必须先把SQL文件从网络上移到你的本地驱动器上,然后再恢复它。
sql-server-2008
backup
access-denied
permission-denied
Smiley
Smiley
发布于 2010-10-18
23 个回答
Robin Vessey
Robin Vessey
发布于 2022-03-23
已采纳
0 人赞同

是的,我刚刚得到了这个消息。

在Windows服务中查找。开始 > 管理 > 服务

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

这是你需要给予目录权限的账户,在资源管理器中右击>属性>共享(和安全)。

注意:如果你要跨越网络,记得给实际目录和共享的权限。

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

注意2:如果你跨网络备份,而你的SQL以 "本地服务 "的方式运行,那么你就有麻烦了......你可以尝试分配权限,或者在本地备份并在SQL Server之外xcopy(一小时后)可能会更容易。

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

权限/添加/高级没有在列表中找到用户,但我粘贴了 "NT Service\MSSQLSERVER",它像一个冠军一样工作。
在文件夹中添加 "每个人 "的权限是否包括这个问题?
这要看情况,如果是真正的公共的、未经认证的,那么是的。如果是 "任何认证的",那么远程机器上的LOCAL SERVICE通常不符合条件......但你真的想让每个人都能访问吗,对我们来说,这几乎是一种可被解雇的罪行。
对我来说不起作用,而且我只是备份到C:\temp\。文件夹权限屏幕无法识别服务所使用的登录,NT Service\MSSQLSERVER,即使按照@Mark A的建议粘贴。是否有一个好的替代账户供该服务使用?
对我来说是有效的,很好的解决方案!我使用的是SQL Server Express 2014,所以你需要给'NT Service\MSSQL$SQLEXPRESS'以写入权限。
Abuleen
Abuleen
发布于 2022-03-23
0 人赞同

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

Martin Smith
Martin Smith
发布于 2022-03-23
0 人赞同

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

我如何给SQL Server服务账户以访问此文件夹的权限? :)
Jason
Jason
发布于 2022-03-23
0 人赞同

我最近也遇到了这个问题,但是我在服务器A上运行备份工作,但被备份的数据库是在服务器B上,在服务器C上的一个文件共享。

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

Sawarkar vikas
Sawarkar vikas
发布于 2022-03-23
0 人赞同

我在Windows 10上使用SQL Express 2014 SP1也面临同样的问题。

解决方法是

  • 通过输入 "服务 "打开服务
  • 找到并打开SQL服务器(SQLExpress)。
  • 转到登录标签
  • 选择本地系统账户(同时勾选允许服务与桌面交互)。
  • 点击确定。停止该服务。重新启动该服务。
  • 问题解决了
  • Raghav
    Raghav
    发布于 2022-03-23
    0 人赞同

    为了找出你需要给哪个用户做恢复过程的权限,你可以按照以下步骤进行。

    你需要到你安装SQL Server的服务器上。找到SQL Server配置管理器

    接下来,你需要进入 "SQL Server服务"

    在你的SQL Server(MSSQLSERVER)实例下,会有一个列有 "Logon As "的账户,在我的例子中,它是NT Service\MSSQLSERVER

    这就是你需要在源.bak位置的安全标签下添加的账户,并给予该用户 "读 "的权限,以便可以读取备份文件。

    比方说,你的备份文件在 "D:\Shared "文件夹下,那么你需要给予这样的权限。

    对我来说是可行的。在我的例子中,服务器在AD域中,但用户MSSQLSERVER是本地机器用户,可以在 "选择用户或组 "窗口中改变 "从这个位置:"。
    Gaurav Amatya
    Gaurav Amatya
    发布于 2022-03-23
    0 人赞同

    发生这种情况的原因之一是你在运行MSSQLSERVER服务时没有使用本地系统。要解决这个问题,请使用以下步骤。

  • 使用Windows+R打开运行
  • 输入services.msc,一个服务对话框将打开
  • 找到SQL服务器(MSSQLSERVER)。
  • 右击并点击属性。
  • 转到登录标签
  • 选择本地系统账户并点击 "应用 "和 "确定"
  • 选择 "SQL Server (MSSQLSERVER)",点击左边面板上的停止链接,一旦完全停止,再启动它。
  • 享受你的备份。
  • 希望它能很好地帮助你,就像它对我一样。干杯!

    DNK
    DNK
    发布于 2022-03-23
    0 人赞同

    我自己刚刚经历了这个问题。我已经确保我的MSSQLSERVER登录用户有full access ,但它仍然造成问题。更重要的是,我把目标移到了用户文件夹之外(尽管我有一个具有完整权限的共享--甚至尝试了 "Everyone "作为测试),它才工作。

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

    只是给任何其他遇到这个问题的用户一个参考。

    Bon
    我认为这是由企业网域造成的,这些网域的用户路径驻留在网络驱动器上,因此无论用户登录到哪台机器,都可以透明地访问它们。例如这种情况:superuser.com/a/730519
    JonM
    @Bon 谢谢!这为我解决了问题。我的备份文件所在的路径实际上是一个网络路径。
    Eric Bernier
    Eric Bernier
    发布于 2022-03-23
    0 人赞同

    我有一个类似的问题。我给.bak文件本身和我为NETWORK SERVICE用户写备份的文件夹增加了写权限。要添加权限,只需右击你想改变的文件/目录,选择安全标签,并在那里添加适当的用户/权限。

    你说的适当是什么意思?
    dpen82
    dpen82
    发布于 2022-03-23
    0 人赞同

    以下是我所做的事情,以绕过这个问题。

    1) 转到备份

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

    3) 点击添加

    4) 在文件名:复选框中手动输入备份名称,就像下面这样,Yourdb.bak是数据库的备份名称

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

    5) 单击 "确定

    希望这对你有帮助!

    Cem Mutlu
    Cem Mutlu
    发布于 2022-03-23
    0 人赞同

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

    BACKUP DATABASE AcinsoftDB
    TO DISK = 'E:\MyDB.Bak'
    WITH FORMAT,
    MEDIANAME = 'C_SQLServerBackups',
    NAME = 'Full Backup of MyDB';
        
    Ramakant Dadhichi
    Ramakant Dadhichi
    发布于 2022-03-23
    0 人赞同

    SQL服务器无法访问(写入)备份到指定的位置。

    首先,你需要验证Sql服务器所运行的服务账户。这可以通过使用配置管理器或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

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

    添加服务账户并提供读/写权限。这将解决这个问题。

    Mr Brigante
    Mr Brigante
    发布于 2022-03-23
    0 人赞同

    在我的情况下,我忘了给备份文件命名,它一直给我同样的权限错误:/。

    TO DISK N'{path}\WRITE_YOUR_BACKUP_FILENAME_HERE.bak'
        
    Mohsen Najafzadeh
    Mohsen Najafzadeh
    发布于 2022-03-23
    0 人赞同

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

  • 我把我的备份文件存放在其他文件夹路径上,这样做是正确的。
  • 查看不同的安全标签的两个文件夹(如下图所示)。
  • 在安全选项卡的文件夹中设置编辑权限,但这是不正确的。
  • Jacques Kammeyer
    Jacques Kammeyer
    发布于 2022-03-23
    0 人赞同
    user2459051
    user2459051
    发布于 2022-03-23
    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 "服务账户没有完全控制的安全权限。

    请按照下面的步骤,给服务帐户以完全控制权。

  • 转到C盘,右键点击备份文件夹。
  • 选择安全选项卡。
  • 点击 "编辑 "按钮,新窗口将打开。
  • 点击添加按钮,输入TestKiran用户账户,点击检查名称按钮,这将验证你输入的用户是否存在,如果存在,它将在窗口中显示用户,选择确定。
  • 选择你输入的用户名并选择允许下的完全控制复选框。
  • user2703575
    user2703575
    发布于 2022-03-23
    0 人赞同

    请检查对驱动器的访问。首先创建一个文件夹并进入文件夹属性。

    你可能会发现安全选项卡,点击它检查你的用户ID是否有权限。

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

    Gennady G
    Gennady G
    发布于 2022-03-23
    0 人赞同

    分享这个文件夹并使用UNC路径,例如。\pc/backups/mydb.bak

    然后你可以停止共享。

    这不是很优雅,但它解决了所有的权限问题(你也需要给共享的权限,如上所述)。

    Eric J.
    Eric J.
    发布于 2022-03-23
    0 人赞同

    当.BAK文件被暂时存放在一个用BitLocker加密的文件夹中时,我遇到了这个问题。当它被移到一个不同的文件夹后,它仍然保留了加密功能。

    NETWORK SERVICE账户无法解密该文件,并给出了这个内容丰富的错误信息。

    在.BAK文件上取消BitLocker加密(通过取消在文件属性中勾选 "加密内容以保护数据")可以解决这个问题。

    Hiren Parghi
    Hiren Parghi
    发布于 2022-03-23
    0 人赞同

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

    我不得不检查服务器管理器->工具->服务,并找到服务的用户("登录为 "一栏)::。 On As "列)的服务。SQL服务器(SQLEXPRESS)。

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

    Robert Peter Bronstein
    Robert Peter Bronstein
    发布于 2022-03-23
    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'