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

Ubuntu系统中MSSQL创建文件遇错误5(拒绝访问)如何解决?

解决SQL Server on Linux创建数据库时的“Access is denied”(操作系统错误5)问题

问题根源

SQL Server在Linux系统中是以mssql用户身份运行的,你指定的目标路径/home/user/Templates/没有赋予该用户读写权限,导致创建数据库文件时被系统拒绝。

具体解决步骤

  • 确认SQL Server运行用户
    执行以下命令验证服务运行身份:

    ps aux | grep mssql
    

    输出结果中会显示进程所属用户为mssql。

  • 修改目标目录权限
    给/home/user/Templates/目录赋予mssql用户所有权及读写执行权限:

    # 修改目录所有者为mssql用户组
    sudo chown mssql:mssql /home/user/Templates/
    # 设置目录权限,确保mssql有足够权限操作
    sudo chmod 750 /home/user/Templates/
    
  • 处理SELinux限制(仅适用于RHEL/CentOS等启用SELinux的系统)
    如果你的系统开启了SELinux,需要调整目录的安全上下文,允许SQL Server访问:

    # 添加SELinux上下文规则
    sudo semanage fcontext -a -t mssql_db_t "/home/user/Templates(/.*)?"
    # 应用上下文设置
    sudo restorecon -Rv /home/user/Templates/
    
  • 验证权限有效性
    切换到mssql用户尝试创建测试文件,确认权限配置正确:

    sudo su - mssql -c "touch /home/user/Templates/testfile.mdf"
    

    若命令无报错,说明权限已配置完成,此时可以重新尝试创建数据库。

额外建议

尽量避免使用用户主目录(/home/user/下的目录)作为数据库文件存储路径,推荐使用专门的存储目录(如/var/opt/mssql/data或自定义的/data/sql-databases),这类目录默认已配置好适合SQL Server的权限规则,能减少后续权限问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:17:37