发生连接授权失败。原因:无效的GSSAPI服务器凭据。错误代码= -4214,SQLSTATE = 28000

时间:2019-08-02 12:58:50

标签: db2 ibm-cloud db2-luw dashdb

我希望使用JDBC和IBMid / Password连接到云上的DB2仓库(DB2 WoC)服务器,前提是在数据库实例上启用了IAM。在我的Db2 WoC服务器上启用了它。这是我要连接的代码(此方法在here中进行了描述):

import com.ibm.db2.jcc.DB2SimpleDataSource
val dataSource: DB2SimpleDataSource = new DB2SimpleDataSource()

dataSource.setDriverType(4)
dataSource.setDatabaseName("BLUDB")
dataSource.setServerName("<server url>")
dataSource.setPortNumber(50001)
dataSource.setSslConnection(true)
dataSource.setSecurityMechanism(com.ibm.db2.jcc.DB2BaseDataSource.PLUGIN_SECURITY)
dataSource.setPluginName("IBMIAMauth")
val conn = dataSource.getConnection("<ibmid>", "<password>")

在尝试使用这种方式进行连接时,出现错误Connection authorization failure occurred. Reason: Invalid GSSAPI server credential. ERRORCODE=-4214, SQLSTATE=28000。在互联网上搜索此错误使我无处可去。为什么会这样呢? (我的服务器网址正确)。

编辑:我正在使用db2jcc4.jar驱动程序版本4.26.14,并且正在我的本地系统上运行此代码,尝试连接到server url

1 个答案:

答案 0 :(得分:1)

不是一个真正的答案,但这对于评论来说太大了。

您可以在没有CLPPlus的情况下解决连接问题,因为驱动程序本身包含一个嵌入式测试程序,您可以像这样调用它:

java -cp /path/to/db2jcc4.jar com.ibm.db2.jcc.DB2Jcc \
-url "jdbc:db2://whatever.bluemix.net:50001/BLUDB:sslConnection=true;sslCertLocation=/path/to/DigiCertGlobalRootCA.crt;" \
-user whatever -password "secret"

请注意对服务器证书的引用。

以上内容适用于现已弃用的JDBC 3.0驱动程序db2jcc.jar和JDBC 4.0驱动程序db2jcc4.jar