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

如何在Databricks中用PySpark配置Oracle原生网络加密连接

在Databricks中用PySpark通过JDBC连接Oracle并启用原生网络加密

要启用Oracle原生网络加密,你需要在JDBC连接中添加Oracle特定的加密参数,以下是两种修改方式:

方式一:将加密参数附加到JDBC URL中

修改你的Oracle URL,在末尾拼接加密相关参数,示例如下:

# 假设原URL为 jdbc:oracle:thin:@//your-oracle-host:1521/your-service-name
encrypted_url = "jdbc:oracle:thin:@//your-oracle-host:1521/your-service-name?oracle.net.encryption_client=REQUIRED&oracle.net.encryption_types_client=(AES256)&oracle.net.crypto_checksum_client=REQUIRED&oracle.net.crypto_checksum_types_client=(SHA256)"

spark.read \
    .format("jdbc") \
    .option("url", encrypted_url) \
    .option("query", <My Query>) \
    .option("fetchSize", "100000") \
    .option("user", <My Oracle_User>) \
    .option("password", <My Oracle_Password>) \
    .option("driver", "oracle.jdbc.driver.OracleDriver") \
    .option("timeout", timeout_seconds) \
    .load()

方式二:通过单独的JDBC选项添加加密参数

在原代码中新增加密相关的.option配置:

spark.read \
    .format("jdbc") \
    .option("url", <My Oracle_Url>) \
    .option("query", <My Query>) \
    .option("fetchSize", "100000") \
    .option("user", <My Oracle_User>) \
    .option("password", <My Oracle_Password>) \
    .option("driver", "oracle.jdbc.driver.OracleDriver") \
    .option("timeout", timeout_seconds) \
    # 强制启用网络加密
    .option("oracle.net.encryption_client", "REQUIRED") \
    # 指定加密算法(需与Oracle服务器配置一致)
    .option("oracle.net.encryption_types_client", "(AES256)") \
    # 可选:强制启用校验和,增强数据完整性
    .option("oracle.net.crypto_checksum_client", "REQUIRED") \
    .option("oracle.net.crypto_checksum_types_client", "(SHA256)") \
    .load()

关键注意事项

  • 确保Oracle服务器端已配置匹配的加密策略,否则连接会失败
  • 加密算法需与服务器端配置一致,比如服务器使用AES128,客户端也要对应调整
  • 建议使用Oracle 12c及以上版本的JDBC驱动,确保支持这些加密参数
  • 如果Databricks集群未预装Oracle JDBC驱动,需先上传驱动jar包并配置为集群依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:47:21