如何跨Windows认证本地SQL Server恢复.bak备份(非脚本方式)
非脚本方式恢复跨机器SQL Server备份文件的解决方案
遇到这种情况很常见——SSMS的备份文件选择界面是基于SQL Server服务账户的权限和默认路径来显示文件的,不是你的本地用户视角。下面给你两个靠谱的非脚本解决方法:
方法1:将备份文件放到SQL Server默认备份目录
这是最简单的方式,因为SQL Server服务账户默认对这个目录有访问权限:
- 打开SSMS,连接到目标服务器后,右键点击服务器名称 → 属性 → 切换到数据库设置标签页
- 在“数据库默认位置”区域找到默认备份目录,复制这个路径(比如
C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup) - 把你的
.bak备份文件拷贝到这个目录下 - 回到SSMS的恢复数据库界面,刷新一下就能看到这个备份文件了
方法2:手动指定备份文件路径(解决权限问题)
如果不想移动文件位置,可以直接手动输入路径,同时确保SQL Server服务账户能访问该文件:
- 打开“恢复数据库”窗口,在“源”选项中选择设备,然后点击右侧的
...按钮打开备份设备选择器 - 在弹出的窗口中点击添加,此时弹出的文件浏览器是SQL Server服务账户的上下文(不是你当前登录的Windows账户),所以你自己桌面/下载文件夹里的文件可能看不到
- 直接在文件浏览器的地址栏输入备份文件的完整绝对路径(比如
D:\Backups\MyDB.bak),按回车就能选中该文件 - 如果输入路径后还是无法访问,需要给SQL Server服务账户添加文件夹的读取权限:
- 找到存放
.bak文件的文件夹,右键 → 属性 → 安全标签页 → 点击编辑 - 点击添加 → 高级 → 立即查找,找到SQL Server的服务账户(默认实例是
NT SERVICE\MSSQLSERVER,命名实例是NT SERVICE\MSSQL$你的实例名) - 选中该账户后点击确定,给它分配读取权限,再点击几次确定保存设置
- 回到SSMS重新尝试浏览,就能看到备份文件了
- 找到存放
恢复时的额外注意事项
- 恢复前确认目标数据库名称是否正确,如果是新数据库直接填写名称即可;如果要覆盖现有数据库,记得勾选“覆盖现有数据库”选项
- 在“文件”标签页可以修改恢复后数据文件(.mdf)和日志文件(.ldf)的存放路径,避免和现有数据库文件冲突
内容的提问来源于stack exchange,提问作者Ali Waleed
相关产品推荐
相关产品推荐

