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

无网络Azure Databricks集群安装ODBC驱动及Synapse只读访问咨询

从Azure Databricks访问Azure Synapse Analytics的权限与驱动问题

问题背景

我的目标是从Azure Databricks访问Azure Synapse Analytics。最初考虑使用Spark驱动com.databricks.spark.sqldw,但该驱动要求数据库用户拥有db_owner权限,这并不合适——用户可能会误操作Synapse,我仅希望用户用自身Active Directory账号读取Synapse数据。

随后尝试通过ODBC/JDBC驱动访问,就像本地Python脚本那样操作,但Databricks集群无网络访问权限,没法执行apt-get类命令安装ODBC驱动。

现在需要解决以下任一问题即可:

  • 如何将Azure存储账户Gen2中的文件复制到Databricks集群本地文件系统?我已把ODBC Driver 17 for SQL Server(msodbcsql17_17.10.1.1-1_amd64.deb)上传到存储账户容器,能通过dbutils查看,能不能复制到集群文件系统?
  • 是否可以使用默认Spark驱动com.databricks.spark.sqldw,仅以SELECT权限访问Azure Synapse Analytics?

补充说明:没使用Synapse Apache Spark池是因为无法运行SELECT * FROM A INNER JOIN B...这类查询,且Databricks的UI体验更好。


解决方案

问题1:将存储账户Gen2的文件复制到Databricks集群本地

可以通过dbutils.fs.cp命令完成复制,步骤如下:

  1. 确认存储账户的ABFS路径格式:abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<deb文件路径>
  2. 执行复制命令,将文件复制到集群临时目录(如/tmp/):
dbutils.fs.cp("abfss://container@storageaccount.dfs.core.windows.net/msodbcsql17_17.10.1.1-1_amd64.deb", "file:/tmp/msodbcsql17_17.10.1.1-1_amd64.deb")
  1. 验证文件是否存在:
%sh ls /tmp/

注意:集群重启后本地临时目录的文件会被清空,建议将复制+安装步骤写入集群初始化脚本,确保节点启动时自动执行。

问题2:使用com.databricks.spark.sqldw仅以SELECT权限访问

完全可以实现,无需db_owner权限,关键是配置正确的权限和连接参数:

  1. 权限配置:
    • 给AD账号在Synapse数据库分配db_datareader角色,或针对特定表/视图分配精细的SELECT权限
    • 确保AD账号拥有Synapse工作区访问权限,以及用于临时数据传输的Blob存储账户的读写权限(驱动需要临时存储中转数据)
  2. 连接示例代码:
df = spark.read \
  .format("com.databricks.spark.sqldw") \
  .option("url", "jdbc:sqlserver://<synapse服务器>.database.windows.net:1433;database=<数据库名>;Authentication=ActiveDirectoryIntegrated;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;") \
  .option("tempDir", "abfss://<容器名>@<存储账户名>.dfs.core.windows.net/temp") \
  .option("forwardSparkAzureStorageCredentials", "true") \
  .option("query", "SELECT * FROM your_table") \
  .load()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:15:47