You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Azure DevOps备份本地SQL数据库至共享文件夹遇权限错误求助

问题原因及解决方法

核心原因

  1. 权限层级未覆盖:共享文件夹权限仅控制网络访问入口,还需配置目标文件夹的NTFS权限,两者需同时授权给对应账户,缺一不可。
  2. 机器账户授权遗漏:域环境中,NT AUTHORITY\SYSTEM对应域内的机器账户DOMAIN\SERVER15$,你可能仅配置了共享权限,未在NTFS权限中添加该账户。
  3. 权限范围不足:仅授予读取权限无法完成备份操作,需保证账户拥有写入/修改权限。
  4. 执行上下文混淆:若备份命令通过SQL Server执行(如BACKUP DATABASE语句),实际执行操作的是SQL Server服务账户,而非Azure DevOps代理的SERVER15$账户,此时权限配置对象错误。

解决方法

1. 补全Server7共享文件夹的双重权限配置

共享权限设置

  • 右键\\Server7\DatabaseBackup文件夹 → 属性 → 共享标签页 → 权限。
  • 添加域机器账户DOMAIN\SERVER15$,授予读取/写入权限(至少需要写入权限完成备份文件的创建)。

NTFS权限设置

  • 切换到安全标签页 → 编辑 → 添加,输入DOMAIN\SERVER15$并确认。
  • 为该账户勾选修改、写入、读取和执行权限(建议直接授予修改权限,覆盖备份所需的读写及文件管理操作)。

2. 确认备份执行上下文

  • 若你的命令是通过Azure DevOps代理直接执行文件级操作(如拷贝备份文件到共享):确保代理服务运行在NT AUTHORITY\SYSTEM账户下,按步骤1配置权限即可。
  • 若你的命令是调用SQL Server执行备份(如sqlcmd -Q "BACKUP DATABASE MyDB TO DISK='\\Server7\DatabaseBackup\Backup.bak'"):
    1. 在SERVER15上查看SQL Server服务的登录账户(服务管理器中找到SQL Server (MSSQLSERVER),查看登录身份)。
    2. 将该账户(可能是NT SERVICE\MSSQLSERVER或域账户)添加到Server7共享文件夹的共享和NTFS权限中,授予写入权限。

3. 验证权限有效性

  • 在SERVER15上,以本地系统账户身份测试共享访问:
    psexec -s cmd.exe
    net use \\Server7\DatabaseBackup /user:DOMAIN\SERVER15$ ""
    echo test > \\Server7\DatabaseBackup\test.txt
    
    若成功创建test.txt,说明权限配置正确;若仍报错,需检查账户拼写、域信任关系或权限继承设置。

4. 可选:切换Azure DevOps代理运行账户

  • 若机器账户权限配置受限,可将Azure DevOps代理服务切换为拥有Server7共享权限的域服务账户:
    1. 在SERVER15上停止Azure DevOps代理服务。
    2. 打开服务属性,将登录身份改为指定域账户,输入密码并确认。
    3. 启动代理服务,确保该域账户具备SERVER15本地的登录作为服务权限。

内容的提问来源于stack exchange,提问作者Bastien Vandamme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:07:55