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

如何在本地Oracle Express Edition配置SSL并通过cx_Oracle安全连接

Python cx_Oracle 安全连接实现方法

方式一:修改连接字符串(TCPS协议)

将原连接的TCP协议替换为TCPS,并指定SSL验证参数:

import cx_Oracle

host = "localhost"
ssl_port = 2484
service_name = "new_pdb"
username = "testuser"
password = "<password>"
server_cert_dn = "CN=localhost"  # 需与服务器证书的CN一致

# 构建SSL连接字符串
conn_str = (
    f"{username}/{password}@(DESCRIPTION ="
    f"(ADDRESS=(PROTOCOL=TCPS)(HOST={host})(PORT={ssl_port}))"
    f"(CONNECT_DATA=(SERVICE_NAME={service_name}))"
    f"(SECURITY=(SSL_SERVER_CERT_DN=\"{server_cert_dn}\")))"
)

# 初始化Oracle客户端(若需指定证书目录,可添加config_dir参数)
# cx_Oracle.init_oracle_client(config_dir="./path/to/certs")

conn = cx_Oracle.connect(conn_str)
if conn:
    print("安全连接成功...")
    conn.close()

方式二:使用cx_Oracle高级连接参数(推荐)

通过显式参数指定SSL相关配置,代码可读性更强:

import cx_Oracle

# 构建TCPS协议的DSN
dsn = cx_Oracle.makedsn(
    host="localhost",
    port=2484,
    service_name="new_pdb",
    protocol="TCPS"
)

# 建立安全连接
conn = cx_Oracle.connect(
    user="testuser",
    password="<password>",
    dsn=dsn,
    ssl_server_cert_dn="CN=localhost",
    ssl_version="1.2"
)

print("安全连接成功...")
conn.close()

注意事项

  • 确保cx_Oracle版本与Oracle客户端版本兼容,两者均需支持SSL连接
  • 若需双向认证(同时验证客户端证书),需将SSL_CLIENT_AUTHENTICATION设为TRUE,并为客户端配置钱包,在Python连接时指定客户端钱包路径
  • 自签证书仅用于测试,生产环境请使用权威CA签发的证书

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:08:11