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

Ubuntu下SQL Server调用Python导出数据提示文件不存在如何解决

问题排查与解决步骤

1. 优先排查AppArmor安全模块拦截

Ubuntu 18.04默认开启的AppArmor安全模块会限制SQL Server的访问目录范围,即使你给目录授予了全局读写权限,AppArmor规则也会拦截SQL Server对/home目录的访问,这是该场景下最常见的原因。

  • 临时禁用SQL Server的AppArmor规则测试:
    sudo aa-disable /etc/apparmor.d/usr.sbin.mssql
  • 重启相关服务:
    sudo systemctl restart mssql-server mssql-launchpadd
  • 重新执行你的SQL脚本测试,如果此时可以正常导出,说明确实是AppArmor规则限制,修改规则永久放行即可:
    编辑/etc/apparmor.d/usr.sbin.mssql文件,在规则段末尾新增两行配置:
    /home/dataexport/ r,
    /home/dataexport/** rw,
    
    重新加载AppArmor规则并恢复启用:
    sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mssql
    sudo aa-enforce /etc/apparmor.d/usr.sbin.mssql
    再次重启SQL Server相关服务即可。

2. 确认目录基础配置正确

  • 确认目录真实存在:ls -ld /home/dataexport,如果不存在先执行创建命令:sudo mkdir -p /home/dataexport
  • 直接将目录属主修改为SQL Server运行用户,避免权限歧义:sudo chown -R mssql:mssql /home/dataexport

3. 替换路径验证脚本可用性

如果以上操作后依然报错,先将导出路径替换为SQL Server默认有权限的目录验证脚本本身是否正常,比如修改导出路径为/var/opt/mssql/tmp/1.csv,如果该路径可以正常导出,即可确认问题出在目录访问拦截,再回头核对AppArmor或者其他防火墙、安全组规则即可。

4. 安全优化建议

你之前给SQL Server和LaunchPad服务授予的sudo权限存在严重安全隐患,问题解决后请及时移除该权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 15:45:04