1

我在使用错误的用户名/密码建立 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 的系统完全不同)

获得连接后,我执行此查询以检查正确的用户名,如帖子中所述:

用于连接验证的简单 DB2 查询

SELECT CURRENT SQLID FROM SYSIBM.SYSDUMMY1

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

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

提前致谢。

4

1 回答 1

1

您要么使用限制性选项创建数据库,要么撤销 PUBLIC 对 sysibm 的选择权限。你的连接很好,访问权限不行。42704 是 DB2 说“嗯?”的方式,它无法识别 sysibm,因为您无权查看它。

于 2012-12-16T11:40:48.153 回答