Python DB2 SSL连接

edqdpe6u  于 2022-11-07  发布在  DB2
关注(0)|答案(3)|浏览(167)

我一直在使用ibm_dbibm_db_dbi通过panda运行DB2数据库的SQL查询(客户端)。但是我们公司实施了新的安全标准,我也需要一种方法来保护连接。运行Python3.7DB2 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纳入此代码?

7fyelxc5

7fyelxc51#

不幸的是,这有点复杂,(希望)您的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库,为Db2客户端提供SSL功能)。

w41d8nur

w41d8nur2#

请尝试设置以下属性:
Security =SSL、SSL客户端密钥存储b、SSL客户端密钥存储数据库密码或SSL客户端密钥存储,如链接中所述。

ztyzrc3y

ztyzrc3y3#

对于一些较新版本的Db2驱动程序,要连接到Db2 on Cloud和Db2 Warehouse on Cloud,只需将Security=SSL;添加到参数列表中即可。

相关问题