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

SQL Agent作业在SQL Server 2014运行正常,升级至2017后报错无法运行

SQL Agent作业sqlcmd初始化报错排查方案

核心问题根因常见方向

该错误(error 22050 + 错误码-2147467259)本质是sqlcmd运行时上下文权限不足或版本不匹配导致的初始化失败,可按以下优先级逐一排查:

排查步骤

  • 确认作业步骤实际运行身份
    打开作业属性→「步骤」页→双击报错步骤→「高级」选项卡,查看「运行身份」配置:
    1. 如果配置了代理账户,作业步骤实际以代理账户而非SQL Agent服务账户运行,需验证代理账户的所有权限
    2. 如果是域\机器名$格式的计算机账户,通常出现在作业调用SSIS包、cmd/PowerShell脚本、跨实例访问场景下,后续权限排查需针对该计算机账户配置
  • 校验SQL实例层面权限
    运行身份除了目标库的datareader权限外,还需具备以下基础权限,可通过对应T-SQL配置:
    USE master;
    -- 授予实例连接权限
    GRANT CONNECT SQL TO [实际运行身份账户];
    -- 授予服务器状态查看权限(sqlcmd初始化时需要读取系统元数据)
    GRANT VIEW SERVER STATE TO [实际运行身份账户];
    -- 如果作业步骤调用了xp_cmdshell,额外授予执行权限
    GRANT EXECUTE ON sys.xp_cmdshell TO [实际运行身份账户];
    
  • 校验操作系统层面权限
    sqlcmd初始化时需要读写运行身份对应的临时目录,需确认对应目录权限:
    1. 普通用户对应临时目录:C:\Users\<用户名>\AppData\Local\Temp,需授予读取、写入、修改权限
    2. 计算机账户/服务账户对应临时目录:C:\Windows\Temp 或服务配置文件下的Temp目录,需授予对应账户修改权限
    3. 如果作业配置了日志输出到本地文件,需额外确认运行身份对输出路径的读写权限
  • 校验sqlcmd版本兼容性
    升级到SQL Server 2017后,旧版sqlcmd可能存在兼容问题,在服务器cmd窗口执行sqlcmd -?查看版本,版本低于15.0时,重新安装SQL Server 2017对应的Native Client和命令行工具即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:27:03