【问题标题】:Can't connect to DB2 with DataGrip with securityMechanism=13无法使用带有 securityMechanism=13 的 DataGrip 连接到 DB2
【发布时间】:2020-10-20 11:36:18
【问题描述】:

我正在尝试使用 DataGrip 与 DB2 数据库建立连接。对于连接securityMechanism=13 是必需的。

连接失败并显示以下消息:

[-4223] [jcc][1071][10615][3.68.61] 抓到 初始化时出现 java.security.InvalidAlgorithmParameterException 加密管理器。详见附件 Throwable。 ERRORCODE=-4223,SQLSTATE=null DH 密钥大小必须是 64 的倍数,并且 只能从 512 到 8192(含)。具体密钥大小 256 不支持。

我们使用了以下字符串:

 jdbc:db2://<ip-adress>:<port>/<schema>:securityMechanism=13;

当我们禁用安全措施时,我们可以连接到数据库,但一旦启用 ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY,我们就无法建立连接。

我们还使用 DataStudio,通过这个应用程序可以创建到 DB2 数据库的 jdbc 连接。我们更喜欢使用 DataGrip,因为我们需要维护不同类型的数据库,而这在 DataStudio 中是不可能的。

【问题讨论】:

  • 比较在成功案例 (IBM DataStudio) 和失败案例 (DataGrip) 中使用的 jvm/jdk/jre 的确切版本。您可能会发现失败案例使用 java 11 或更高版本,如果是这样,那么此技术说明将给出原因:ibm.com/support/pages/jdbc-data-encrypt

标签: jdbc db2 datagrip


【解决方案1】:

来自Security under the IBM Data Server Driver for JDBC and SQLJ的仅供参考

重要提示:DATA_ENCRYPT 身份验证类型已弃用,可能会在未来版本中删除。

要加密客户端与 Linux®、UNIX 和 Windows 系统数据库上的 Db2® 之间传输的数据,我们建议您使用安全套接字层 (SSL) 的 Linux、UNIX 和 Windows 系统数据库系统支持的 Db2 .

来自https://www.ibm.com/support/pages/jdbc-data-encrypt

从 db2 v11 开始不支持 Data_encrypt。没有计划在 openJDK 11 中支持 DATA_ENCRYPT。建议使用 SSL。

【讨论】:

    【解决方案2】:

    DataGrip 使用 JAVA 11 而DATA_ENCRYPT 不支持 JAVA 11

    【讨论】:

    • 您的第一语言可能不是英语。写“不工作”是不正确的,因为 IBM 故意删除了对这个特性的支持。所以它是“按设计”的。它按照 IBM 的预期工作。 IBM 强制您将 Db2 实例和客户端配置为使用 SSL/TLS。
    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多