【发布时间】: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 上工作时,它们共享相同的配置。
标签: db2 ibm-cloud db2-luw dashdb