首页 > 解决方案 > 如何使用 SSL 将 Python 连接到 DB2 数据库?

问题描述

我有一个正在运行的 DBeaver 连接到一个 DB2 数据库,现在我想用 Python 也通过 SSL 安全地连接到 DB2 数据库。在进行身份验证时,我想使用我的 Windows 帐户而不是提供 PW 和 UserID,在 DBeaver 中这样做我更改了:

javax.net.ssl.keyStoreType = Windows-ROOT
javax.net.ssl.trustStoreType = Windows-MY

这也可以通过 Python 连接实现吗?我尝试了以下方法来设置连接:

import ibm_db

connID = ibm_db.connect('DRIVER={IBM DB2 ODBC DRIVER};'
                     'DATABASE=XXXX;'
                     'HOSTNAME=XXXXYYY.net;'  
                     'PORT=9797;'
                     'PROTOCOL=TCPIP;'
                     'SECURITY=ssl;'
                     'SSLSERVERCERTIFICATE=C:/Users/..../cert.cer;'
                     , '', '')
if connID is None:
    print("\nERROR: Unable to connect.")
exit(-1)
print("Connected!")

我收到以下错误:

 SQLCODE=-30082][CLI Driver] SQL30082N  Security processing failed with reason "17" ("UNSUPPORTED FUNCTION").  SQLSTATE=08001

一些细节:

M:\>"C:\Users\.conda\pkgs\ibm_db-3.0.1-py37hfa6e2cd_1\Lib\site-packages\clidriver\bin\db2level.exe"
DB21085I  This instance or install (instance name, where applicable: "*") uses
"64" bits and DB2 code release "SQL11013" with level identifier "0204010F".
Informational tokens are "DB2 v11.1.3031.295", "s1804271300",
"DYN1804271300WIN64", and Fix Pack "3a".
Product is installed at
"C:\Users\.conda\pkgs\ibm_db-3.0.1-py37hfa6e2cd_1\Lib\site-packages\cli
driver" with DB2 Copy Name "IBM Data Server Driver For ODBC and CLI".

我在用着:

标签: pythondatabasepython-2.7ssldb2

解决方案


推荐阅读