使用错误的用户名/密码在Java中建立DB2连接时出现问题

时间:2011-03-02 10:57:18

标签: java jdbc db2 db2-connect

我在使用错误的用户名/密码建立DB2连接时遇到问题。我们有一个应用程序,它在许多系统上使用位于我的系统上的DB2数据库以及其他系统在LAN上运行。

首先,我使用此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的系统完全不同)

获得连接后,我执行此查询以检查正确的用户名,如post:

中所述

Simple DB2 Query for connection validation

SELECT CURRENT SQLID FROM SYSIBM.SYSDUMMY1

(在这两种情况下都返回“rahulk”)

为什么DB2在第二种情况下使用错误的用户名/密码创建了连接(而且当我们在Rahulkcomputer上关闭DB2的所有服务时,即使我在第二种情况下得到连接)?

先谢谢。

1 个答案:

答案 0 :(得分:1)

您使用限制性选项创建了数据库,或者从PUBLIC撤消了对sysibm的选择权限。您的连接很好,访问权限没有。 42704是DB2说“嗯?”的方式,它没有识别sysibm,因为你没有权利看到它。