以下是我用来备份(创建.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';
提前致谢。
答案 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配置管理器
下一步,您需要转到“ SQL Server服务”
在您的SQL Server(MSSQLSERVER)实例下,将有一个“登录为”列的帐户,在我的情况下是 NT Service \ MSSQLSERVER 。
这是您需要在源.bak位置的“安全”选项卡下添加的帐户,并向该用户授予“读取”权限,以便可以读取备份文件。
假设您的备份文件位于“ D:\ Shared”文件夹中,那么您需要授予以下权限:
答案 6 :(得分:3)
我在Windows 10上遇到与SQL Express 2014 SP1相同的问题。
解决哪个工作
答案 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”服务帐户没有完全控制安全权限。
请按照以下步骤完全控制服务帐户:
答案 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服务而不使用本地系统。要解决此问题,请使用以下步骤。
希望它对您有帮助,就像对我一样。干杯!
答案 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)
我通过以下三个步骤解决了相同的问题:
答案 20 :(得分:0)
我的问题是“文件所有权”设置为我的公司。我将其更改为“个人”并且它起作用了。右键单击该文件并单击“文件所有权>”选项,然后将其更改为“个人”。我相信通过 Microsoft Teams 发送的所有文件都会发生这种情况。