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

Posted

技术标签:

【中文标题】发生连接授权失败。原因:GSSAPI 服务器凭据无效。错误代码=-4214,SQLSTATE=28000【英文标题】:Connection authorization failure occurred. Reason: Invalid GSSAPI server credential. ERRORCODE=-4214, SQLSTATE=28000 【发布时间】:2019-08-02 12:58:50 【问题描述】:

我希望使用 JDBC 和 IBMid/密码连接到 DB2 Warehouse on Cloud (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。在互联网上搜索此错误使我无处可去。为什么会这样? (我的服务器 URL 是正确的)。

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

【问题讨论】:

编辑您的问题以添加您正在使用的 jdbc 驱动程序的确切版本,以及该驱动程序本身是在本地运行还是在云中运行。 我正在尝试通过我的本地系统运行代码,并且我正在使用 db2jcc4 驱动程序版本 4.26.14 您还可以编辑以在您的 db2dsdriver.cfg 中包含(编辑的)条目吗? 您好,我使用的是 IBM Cloud 提供的 DB2 Warehouse。我不确定如何访问您提到的云端文件。 这是本地工作站上的 XML 文件,除非由用户操作创建,否则该文件不存在。您可以使用 db2cli 命令行工具来创建和编辑它,也可以手动编辑。建议您尝试使用 IAM 的用户 ID/密码自己的 java 程序之前,首先让名为 CLPPlus 的 ibm 工具(它是一个 java 程序)使用与 @987654323 上的文档相同的凭据工作@ 当 CLPPlus 使用这些凭据然后在您的 jdbc 上工作时,它们共享相同的配置。 【参考方案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

【讨论】:

以上是关于发生连接授权失败。原因:GSSAPI 服务器凭据无效。错误代码=-4214,SQLSTATE=28000的主要内容,如果未能解决你的问题,请参考以下文章

Windows客户端的无密码Python LDAP3身份验证

LDAP/SASL/GSSAPI/Kerberos编程API--krb5应用服务(UDP)

解决Linux SSH登录慢

PayPal PHP SDK:由于身份验证凭据无效或缺少授权标头,身份验证失败

用户登录失败,该用户与可信SQL Server连接无关联,错误:18452

linux 失败无连接 检查电缆吗