[英]Python DB2 SSL connection
我一直在使用ibm_db & ibm_db_dbi和 pandas 从DB2数据库运行 SQL 查询(客户端)。 然而,我们公司实施了新的安全标准,我也需要一种方法来保护连接。 运行Python3.7和DB2 10.5
以下是我当前的连接字符串:
import ibm_db
import ibm_db_dbi
import pandas as pd
dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "EUH0000"
dsn_hostname = "MEUHC.s990.emea.ibm.com"
dsn_port = "0000"
dsn_protocol = "TCPIP"
dsn_uid = "uid"
dsn_pwd = "pwd"
dsn = (
"DRIVER={{IBM DB2 ODBC DRIVER}};"
"DATABASE={0};"
"HOSTNAME={1};"
"PORT={2};"
"PROTOCOL=TCPIP;"
"UID={3};"
"PWD={4};").format(dsn_database, dsn_hostname, dsn_port, dsn_uid, dsn_pwd)
conn = ibm_db.connect(dsn, "", "")
some_query = "SELECT *....." # just an example
pconn = ibm_db_dbi.Connection(conn)
df = pd.read_sql(some_query, pconn)
有没有办法为这个代码合并 SSL? 还是我应该完全使用不同的库?
不幸的是,这有点复杂,并且(希望)您的 DBA 可以帮助解决其中的一些问题。
如果您使用的是 Db2 10.5 Fixpack 5(或更新版本)客户端,那么您只需要在 DSN 字符串中添加几个参数:
Security=ssl;
SslServerCertificate=/path/to/file.arm;
您的 DBA 应该能够为您提供 SslServerCertificate 文件(或内容)。
如果您独立于 python ibm_db 包安装了 Db2 客户端,那么根据您安装的 Db2 客户端(即为ibm_db
提供本机库),您可能需要安装一些额外的库(IBM GSKit 库,它提供 SSL 功能用于 Db2 客户机)。
尝试设置以下属性:
安全性= SSL、SSLClientKeystoredb、SSLClientKeystoreDBPassword 或 SSLClientKeystash,如链接中所述。
使用一些较新版本的 Db2 驱动程序并连接到 Db2 on Cloud 和 Db2 Warehouse on Cloud,只需添加Security=SSL;
到参数列表工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.