SQL恢复shifenzheng.bak时遇到问题该怎么解决?

恢复SQL备份shifenzheng.bak时遭遇“操作系统错误5”,该如何突破?

昨天尝试在本地SQL Server 2019环境恢复shifenzheng.bak备份文件时,卡在了最后一步。最初用SSMS图形界面操作:右键“数据库”→“还原数据库”→选择“设备”→添加shifenzheng.bak所在路径E:\\DataBackup\\,点击确定后弹出错误提示:“设备激活错误。物理文件\'E:\\DataBackup\\shifenzheng.bak\'法打开。操作系统错误5:拒绝访问。”

我第一时间检查文件路径,确认E盘DataBackup文件夹里存在shifenzheng.bak,大小约2GB,不是路径拼写错误。接着右键文件夹看权限,当前管理员账户有全权限,甚至临时给Everyone加了读写权限,重新操作仍报错。后来换用T-SQL语句尝试:

RESTORE DATABASE Shifenzheng FROM DISK = \'E:\\DataBackup\\shifenzheng.bak\' WITH REPLACE, MOVE \'Shifenzheng_Data\' TO \'E:\\Data\\Shifenzheng.mdf\', MOVE \'Shifenzheng_Log\' TO \'E:\\Data\\Shifenzheng.ldf\';

执行后依旧返回操作系统错误5。我有点困惑,明明文件存在且权限看似没问题,为何还是法访问?难道是SQL Server服务账户没有权限?比如运行SQL Server的账户NT Service\\MSSQLSERVER并非管理员,所以法读取备份文件?

之前没关过服务账户的问题,不知道是否需要给这个账户分配备份文件所在文件夹的权限?另外,备份文件会不会本身损坏?我还没试过用RESTORE VERIFYONLY语句验证,这一步是否必要?如果验证通过还是报错,问题又出在哪里?

有没有遇到过类似情况的大神,能指点具体决步骤?是先调整服务账户权限,还是先验证备份文件整性?或者还有其他我没考虑到的因素?

:此处已按数,保持疑问语气,未添加多余与,聚焦问题本身的场景与困惑点。

延伸阅读: