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

如何在Databricks笔记本中使用RSA密钥替代密码连接Snowflake数据库

在Databricks笔记本中使用RSA密钥连接Snowflake(替代用户名密码认证)

使用RSA密钥认证可避免明文密码暴露,大幅提升连接安全性,以下是完整实现方案:

前提准备

  • 已在Snowflake中为目标用户配置对应RSA公钥(确保公钥已关联至你的Snowflake账户)
  • 已将RSA私钥的.pem文件上传至Databricks环境(可上传至DBFS或笔记本所在目录)

实现代码

# 读取PEM私钥文件
# 若文件在DBFS,路径需改为'/dbfs/指定路径/rsa_key.pem'
pem_file_path = 'rsa_key.pem'

with open(pem_file_path, 'r') as pem_file:
    pem_private_key = pem_file.read()

# 配置Snowflake连接参数
sfOptions = {
    "sfURL": "你的Snowflake账户URL(格式:xxx.snowflakecomputing.com)",
    "sfUser": "你的Snowflake用户名",
    "sfDatabase": "目标数据库名称",
    "sfSchema": "目标Schema名称",
    "sfWarehouse": "使用的仓库名称",
    "sfRole": "使用的角色名称",
    "pem_private_key": pem_private_key  # 传入读取到的未加密PEM私钥内容
}

# 建立Spark连接并读取Snowflake数据
from pyspark.sql import SparkSession

# 若Databricks已预设SparkSession,可直接使用spark变量,无需重新构建
spark = SparkSession.builder \
    .appName("Snowflake_RSA_Connection") \
    .getOrCreate()

# 读取Snowflake目标表数据
df = spark.read.format("snowflake") \
    .options(**sfOptions) \
    .option("dbtable", "目标表名") \
    .load()

# 验证数据读取结果
df.show()

关键注意事项

  • 若PEM私钥为加密状态(设置了解密密码),需在连接参数中添加pem_private_key_passphrase并传入解密密码
  • 确保Databricks集群已安装Snowflake Spark连接器(可通过集群库管理添加net.snowflake:snowflake-jdbc:对应版本和net.snowflake:spark-snowflake_2.12:对应版本依赖,版本需匹配Spark版本)
  • 建议将敏感参数(如账户URL、用户名)通过Databricks密钥管理存储,避免硬编码在代码中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 22:12:36