python - Python DB2 SSL 连接
问题描述
我一直在使用带有 pandas 的ibm_db和ibm_db_dbi从DB2数据库运行 SQL 查询(客户端)。然而,我们公司实施了新的安全标准,我也需要一种方法来保护连接。运行Python3.7和DB2 10.5
以下是我当前的连接字符串:
import ibm_db
import ibm_db_dbi
import pandas as pd
driver = 'IBM DB2 ODBC DRIVER'
database = 'DB0001'
hostname = 'my.host.com'
port = '1234'
protocol = 'TCPIP'
uid = 'user'
pwd = 'password'
security = 'SSL'
dsn = (
f'DRIVER={driver};'
f'DATABASE={database};'
f'HOSTNAME={hostname};'
f'PORT={port};'
f'PROTOCOL={protocol};'
f'UID={uid};'
f'PWD={pwd};'
f'SECURITY={security};'
)
test_query = 'SELECT 1 FROM SYSIBM.SYSDUMMY1'
conn_engine = ibm_db.connect(dsn, '', '')
db_conn = ibm_db_dbi.Connection(conn_engine)
df = pd.read_sql(test_query, db_conn)
有没有办法为此代码合并 SSL?
解决方案
不幸的是,这有点复杂,并且(希望)您的 DBA 可以帮助解决其中的一些问题。
如果您使用的是 Db2 10.5 Fixpack 5(或更高版本)客户端,那么您只需在 DSN 字符串中添加几个参数:
Security=ssl;
SslServerCertificate=/path/to/file.arm;
您的 DBA 应该能够为您提供 SslServerCertificate 文件(或内容)。
ibm_db
如果您将 Db2 客户端与 python ibm_db 包分开安装,那么根据您安装的 Db2 客户端(即为. Db2 客户端)。
推荐阅读
- javascript - 如果输入字段是在按下按钮时创建的,是否可以将数据列表添加到输入字段?
- hazelcast - 如何编写 Hazelcast Jet 作业来处理 Http 请求并将结果作为响应发出
- environment-variables - 如何将环境变量注入 gcloud 计算实例创建的启动脚本?
- mysql - MySQL如何使用具有UNC路径格式的`Load_file()`函数?
- javafx - JavaFX 创建透明径向渐变
- python - HDF5/Python/NumpyArray 的读/写速度
- python - 批量大小 = 1 时的批量标准化
- amazon-web-services - 带有 AWS S3 开发工具包的 AWS 云地图
- unity3d - 在 Windows 10 平板电脑上使用 MRTK
- spring-boot - 不将额外的参数从控制器传递到模板