【发布时间】:2011-07-07 04:37:41
【问题描述】:
我在使用错误的用户名/密码建立 DB2 连接时遇到问题。我们有一个应用程序,它在许多系统上运行在 LAN 上,使用位于我的系统以及其他系统上的 DB2 数据库。
首先我使用这个 URL 创建其他系统 DB2 连接:
Connection con = DriverManager.getConnection("jdbc:db2://Rahulkcomputer:50000/XAN4", "rahulk", "dbirs#35");
这会返回正确的 Connection 对象。现在,当我更改 URL 以使用相同的用户名/密码访问我的系统 DB2 连接时(强烈使用相同的用户名/密码来检查错误处理):
Connection con = DriverManager.getConnection("jdbc:db2://127.0.0.1:50000/XAN4", "rahulk", "dbirs#35");
这一次它再次返回 Connection 对象,而不是抛出指定错误用户名/密码的 SQLException(由于我的系统的 DB2 身份验证与 Rahulkcomputer 的系统完全不同)
获得连接后,我执行此查询以检查正确的用户名,如帖子中所述:
Simple DB2 Query for connection validation
SELECT CURRENT SQLID FROM SYSIBM.SYSDUMMY1
(这两种情况都返回“rahulk”)
为什么 DB2 在第二种情况下使用错误的用户名/密码创建了连接(此外,当我们关闭 Rahulkcomputer 上 DB2 的所有服务时,即使在第二种情况下我也得到了连接)?
提前致谢。
【问题讨论】:
-
我是否因为没有得到任何潜在客户而在错误的标签下发布?请说明。
-
您是否确认您可以通过该连接实际插入数据,如果可以,数据位于哪台计算机上?您确定在执行代码之前编译了 .java 文件吗?
-
嗨 Joachim Sauer,实际上在第二种情况下建立的连接不允许运行任何查询,它还会抛出 SQL 异常 SQLCODE=-204, SQLSTATE=42704。我的问题是,如果无法执行查询,那么为什么要创建连接?是的。我在执行代码之前编译了我的 .java 文件。请给出具体答案,如果你知道。提前致谢。
标签: java jdbc db2 db2-connect