首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ibm_db在Python语言中使用SSLClientKeystoredb连接DB2

ibm_db在Python语言中使用SSLClientKeystoredb连接DB2
EN

Stack Overflow用户
提问于 2018-07-27 04:59:36
回答 4查看 2.5K关注 0票数 0

我正在尝试通过提供SSLClientKeystoredb的Python连接到DB2 JDBC数据库。

这是我一直尝试连接到数据库的方式:

代码语言:javascript
运行
复制
import ibm_db

arg1 = "DRIVER={IBM DB2 ODBC DRIVER};" + "DATABASE=databasename;HOSTNAME=" + "server" + ";PORT=" + "111111" + ";PROTOCOL=TCPIP;UID=" + "userId" + ";PWD=" + "password" + ";SECURITY=ssl" + ";SSLClientKeystoredb=" + "C:/Users/path/db2_ssl_keydb.kdb" + ";SSLClientKeystash=" + "C:/Users/path/db2_ssl_keydb.sth"

conn=ibm_db.connect(arg1, "", "")

我一直收到这个错误:

代码语言:javascript
运行
复制
 SQLCODE=-1109M][CLI Driver] SQL1109N  The command was not processed because the database manager failed to load the following DLL: "GSKit Error: 202".  SQLSTATE=42724

我安装了GSKit8加密和GSKit SSL64位。任何帮助都将不胜感激!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-28 01:38:35

通过切换到python 2.7.9,并将SSL的路径更改为证书的"C:\SSL“,解决了此问题。不确定更改路径是否有帮助,但只想提到这一点,以供将来参考。

票数 0
EN

Stack Overflow用户

发布于 2018-07-27 17:25:29

在DB2Client工作站上,您可以避免将GSK8作为单独的组件进行安装/配置,并且仍然具有到DB2LUW服务器的加密的SSL连接。

请注意,由于其他原因(其他非GSK8应用程序),您可能需要在客户端工作站上使用DB2DB,但这是另一回事。

在MS-Windows上,有两种方法可以避免为Db2 SSL连接安装GSK8,但在这个答案中我提到了一种方法。

从技术上讲,这个特性在V10.5fixpack5DB2-clients中可用,但是有一些but,所以我建议避免使用该修复包,而从fixpack 8或更高版本开始。此功能也适用于V11.1DB2-clients。

如果您有ARM格式的服务器证书,那么您可以在连接字符串中使用SSLSERVERCERTIFICATE和SECURITY关键字,以便从Python (或任何使用Db2 CLI库的工具)使用SSL进行连接。

使用这种方法,您不需要手动创建密钥库和存储,也不需要在连接字符串中使用SSLClientKeystoredb等。

您仍然需要在静态和分发期间为ARM文件添加适当的安全性。

这种方法可能更容易管理,示例连接如下:

代码语言:javascript
运行
复制
try:
   arg1="DATABASE=whatever;HOSTNAME=whatever;PORT=50443;UID=whavever;PWD=whatever;SSLServerCertificate=/path_to/db2server_instance.arm;SECURITY=ssl;"
   conn = ibm_db.connect(arg1,"","")

except:
    logging.error('Error: Failed to connect to database: %s', ibm_db.conn_errormsg())
    sys.exit(1)
票数 1
EN

Stack Overflow用户

发布于 2021-08-22 10:57:37

不知道它是否有帮助,但当我通过“以管理员身份运行”启动gitBash /命令提示符时,它对我起作用了。在我使用

代码语言:javascript
运行
复制
conn=ibm_db.connect("Database=****DB; Hostname=***.***.***.COM; PORT=****; Security=ssl; SSLClientKeystoredb=c:/keystore/ibmca.kdb; SSLClientKeystash=c:/keystore/ibmca.sth;UID= ; PWD= ;",'','')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51547423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档