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

如何使用teradatasql Python包建立Teradata安全连接

Teradata Python连接安全问题解答

问题背景

使用teradatasql 17.20.0.32 Python包连接Teradata时,现有未加密连接代码如下:

conn = teradatasql.connect(host=host, user=user_name, password=password)
cursor = conn.cursor()
cursor.autocommit = True
try:
  [... execute some queries here..]       
finally:
  cursor.close()
  conn.close()

了解到可通过encryptdata参数尝试加密,但不确定该参数是否能实现安全连接,核心疑问如下:


1. 什么是安全连接?

安全连接指客户端与数据库服务器之间的通信全程受保护,核心特性包括:

  • 数据加密:用TLS/SSL协议对传输的所有内容(用户名、密码、查询语句、返回结果)加密,避免明文被网络窃听。
  • 身份验证:验证服务器的真实性,防止被中间人冒充。
  • 完整性保护:确保传输的数据未被篡改,接收方能确认数据完整。

简单来说,安全连接就是让数据库通信走“加密通道”,避免数据在网络中裸奔。


2. 如何在用户名密码认证下建立安全连接?

针对teradatasql包,按以下方式配置即可实现安全连接:

基础加密配置(必选)

开启encryptdata=True是核心,该参数会强制使用TLS协议加密所有传输数据,包括用户名密码的验证过程:

conn = teradatasql.connect(
    host=host,
    user=user_name,
    password=password,
    encryptdata=True
)

强化服务器身份验证(推荐)

为防止中间人攻击,可添加证书验证参数,确保连接的是合法服务器:

conn = teradatasql.connect(
    host=host,
    user=user_name,
    password=password,
    encryptdata=True,
    sslmode="verify-full",  # 强制验证服务器证书有效性
    sslca="/path/to/teradata-ca-cert.pem"  # 指定信任的CA证书路径
)

验证加密是否生效

执行以下查询可确认连接加密状态:

cursor.execute("SELECT * FROM DBC.SessionInfoV WHERE SessionNo = SESSION;")
result = cursor.fetchone()
print("连接加密类型:", result['EncryptionType'])

返回结果中EncryptionType为TLS或SSL,则说明加密已成功启用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:53:24