Db2 Warehouse:如何使用SSL和ibm数据服务器驱动程序进行连接

时间:2019-06-12 10:14:31

标签: ssl db2 db2-luw dashdb

尝试从clpplus连接到Db2 Warehouse Local时,出现以下错误

  ````
  clpplus -nw db2inst1@WP
  ````
  

jcc] [t4] [2030] [11211] [4.24.92]期间发生通信错误   对连接的基础套接字,套接字输入流,   或套接字输出流。错误位置:Reply.fill()-   socketInputStream.read(-1)。信息:   sun.security.validator.ValidatorException:PKIX路径构建失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法执行   查找到请求目标的有效认证路径。错误代码= -4499,   SQLSTATE = 08001

我的数据库已启用SSL,并且我已经在Mac上下载了IBM数据服务器客户端并按如下所示创建了db2dsdriver.cfg

 db2cli writecfg add -database BLUDB -host db2inst1.zc.com -port 50001 

 db2cli writecfg add -dsn WP -database BLUDB -host db2inst1.zc.com -port 50001

 db2cli writecfg add -database BLUDB -host db2inst1.zc.com -port 50001 -parameter "SecurityTransportMode=SSL" `

通常,从dbvizualizer连接时,我们使用以下数据库连接网址

BLUDB:sslConnection = true; sslTrustStoreLocation = / Users / Documents / truststore / ibm-truststore.jks; sslTrustStorePassword = <>;

我什至尝试如下创建文件,但仍然存在相同的错误

db2cli writecfg add -database BLUDB -host db2inst1.zc.com -port 50001 

db2cli writecfg add -dsn WP -database BLUDB -host db2inst1.zc.com -port 50001

db2cli writecfg add -database BLUDB -host db2inst1.zc.com -port 50001 -parameter "SecurityTransportMode=SSL" 

db2cli writecfg add -database BLUDB -host db2inst1.zc.com -port 50001 -parameter "sslTrustStoreLocation=/Users/Documents/truststore/ibm-truststore.jks" 

 db2cli writecfg add -database BLUDB -host db2inst1.zc.com -port 50001 -parameter "sslTrustStorePassword=<>" 

实际上,我正在尝试在Juypter笔记本中使用ibm_db连接到Db2 Warehouse,但是为此,应该对数据库进行分类,并且由于这个问题,我无法使用笔记本,并且在Mac db2客户端上也无法使用支持,因此我必须使用数据服务器客户端。所以我需要帮助实现这一目标

1 个答案:

答案 0 :(得分:0)

为了不让所有内容都带有评论,让我们开始编写答案。...

如果您想connect to Db2 Warehouse using clpplus and using SSL,则必须从Db2 Warehouse的最新版本之一开始进行更改。您需要像这样设置IBM数据服务器驱动程序配置文件:

<configuration>
  <dsncollection>
    <dsn alias="SSLAMPLE" name="SAMPLE" host="9.121.221.159" port="50001">
    </dsn>
  </dsncollection>
  <databases>
    <database name="SAMPLE" host="9.121.221.159" port="50001">
      <parameter name="SecurityTransportMode" value="SSL"/>
    </database>
  </databases>
</configuration>

上面为数据库 SAMPLE 配置了别名 SSLAMPLE 。然后,使用clpplus,您可以连接到 SSLAMPLE