我在使用错误的用户名/密码建立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的所有服务时,即使我在第二种情况下得到连接)?
先谢谢。
答案 0 :(得分:1)
您使用限制性选项创建了数据库,或者从PUBLIC撤消了对sysibm的选择权限。您的连接很好,访问权限没有。 42704是DB2说“嗯?”的方式,它没有识别sysibm,因为你没有权利看到它。