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

Azure Databricks安装ODBC Driver 17时sudo权限问题求助

解决Azure Databricks安装ODBC驱动17的权限问题

问题根源

Azure Databricks集群的普通用户会话(比如%sh魔法命令)没有sudo权限,无法直接执行需要root权限的apt操作,必须通过集群初始化脚本完成驱动安装——初始化脚本会以root身份在集群启动时运行。

具体解决步骤

  1. 创建初始化脚本
    在Databricks工作区中创建名为install_odbc_driver.sh的脚本,内容如下:

    #!/bin/bash
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
    apt-get update
    ACCEPT_EULA=Y apt-get -q -y install msodbcsql17
    

    注意:无需加sudo,初始化脚本本身以root权限执行。

  2. 上传脚本到DBFS
    将脚本上传到Databricks文件系统(DBFS),比如路径dbfs:/databricks/scripts/install_odbc_driver.sh。可通过Databricks UI的"数据"面板上传,或用CLI命令:

    databricks fs cp install_odbc_driver.sh dbfs:/databricks/scripts/install_odbc_driver.sh
    
  3. 配置集群使用初始化脚本

    • 进入集群配置页面,找到「高级选项」→「初始化脚本」
    • 添加脚本路径:dbfs:/databricks/scripts/install_odbc_driver.sh
    • 重启集群,脚本会在集群启动时自动完成驱动安装
  4. 验证安装结果
    集群重启后,运行以下%sh命令验证驱动是否安装成功:

    odbcinst -q -d -n "ODBC Driver 17 for SQL Server"
    

    若输出驱动相关信息,说明安装成功。

  5. 安装pyodbc
    直接在集群的「库」面板添加pyodbc包,或执行%pip install pyodbc命令即可,此步骤无需root权限。

原方法失效原因

  • %sh命令在普通用户会话中执行,无sudo权限,无法修改系统级目录或执行apt操作
  • 普通用户未配置sudo密码,即使尝试sudo -s也无法切换到root身份

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:15:58