【问题标题】:how to replace jaydebeapi package with python ibm_db package when sslConnection is used使用sslConnection时如何用python ibm_db包替换jaydebeapi包
【发布时间】:2019-09-19 01:16:36
【问题描述】:

我可以使用需要 ssl 连接的 jaydebeapi python 3.7 包连接 db2 数据库。下面是连接字符串:

connection_string='jdbc:db2://%s:%s/%s:sslConnection=%s;sslTrustStoreLocation=%s;sslTrustStorePassword=%s' % (dsn_hostname, dsn_port, dsn_database, ssl_connection, ssl_trust_store_location, ssl_trust_store_password)

我需要使用python

ibm_db 包

相反,但我没有找到任何关于将它与 ssl 信任存储一起使用的信息。

请帮我解决这个问题。

【问题讨论】:

    标签: db2 ibm-cloud ibm-cloud-storage


    【解决方案1】:

    您的问题与配置有关,与编程无关。

    python 的 ibm_db 模块使用 CLI(调用级接口),这是一个由 Db2 驱动程序提供的非 java 接口,与使用 jdbc 的基于 java 的工具不同。

    您可以选择使用手动创建的信任库或动态创建的信任库来连接 TLS/SSL。

    后者需要您的工作站上具有最新的 Db2 客户端(高于 Db2 v10.5 修订包 5)和特殊的配置设置,并假定只需要一个证书文件并且以 ARM 格式提供。

    对于 IBM 云,相关文档为here

    为避免手动创建信任库,请使用连接关键字 SSLServerCertificate=fully-qualified-path-to-ARM-file 和 SecurityTransportMode=SSL。查找在线Db2 knowledge centre 了解详情。这是最简单的选择。

    要使用信任库,它将与 java 使用的存储库不同,并且可能需要安装 IBM Global Security Kit (GSK) 的附加软件,然后对其进行配置。这是将 SSL 与 Db2 一起使用的旧方法,并且已被上面的动态信任库方法所取代。 IBM 在 Db2 知识中心 here 中记录了这一点。

    【讨论】:

    • 我尝试使用 gsk 但失败了:keytool -list -v -keystore ibm-truststore keytool -export -alias cacert -keystore db-truststore -file cert.arm gsk8capicmd_64 -keydb -create -db "dbclient .kdb” -pw “passw0rdpw0” -stash gsk8capicmd_64 -cert -add -db “dbclient.kdb” -pw “passw0rdpw0” -label “dbcert” -file “/ssl_directory_name/ssl/cert.arm” -format ascii -fips db2使用 SSL_CLNT_KEYDB /ssl_directory_name/ssl/dbclient.kdb 更新 dbm cfg 错误:未更新配置参数,因为指定的值无效。指定值:“0”。配置参数名称:“fcm_buffer_size”
    • 不要通过评论添加新的事实,因为它们不容易阅读。请改为编辑问题,并使用格式使其易于阅读。还要说明您是否先尝试了更简单的选项。
    猜你喜欢
    • 1970-01-01
    • 2016-04-26
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多