DB2数据库连接问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2数据库连接问题相关的知识,希望对你有一定的参考价值。
COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] SQL30082N 安全处理失败,因为 "24"("USERNAME AND/OR PASSWORD INVALID")。 SQLSTATE=08001
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Connection.connect(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Connection.<init>(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:620)
at java.sql.DriverManager.getConnection(DriverManager.java:200)
at Incognito.main(Incognito.java:210)
这是什么原因?????
java的配置文件xml文件中链接数据库的用户名或是密码有误。
安全处理失败和"24"("USERNAME AND/OR PASSWORD INVALID")都很明确的指出了密码或用户名无效,建议检查配置文件中连接数据库的语句 参考技术A USERNAME AND/OR PASSWORD INVALID
无效的用户名或(和)密码 参考技术B 1、你服务器的JDBC包版本对不对?
2、服务器防火墙是否开放
java的db2连接问题
【中文标题】java的db2连接问题【英文标题】:Db2 connection problem with java 【发布时间】:2010-12-08 00:05:12 【问题描述】:我在使用 DB2 时遇到问题。我刚刚将 db2 安装为 db2admin 并使用密码。当我尝试连接到数据库时,它完全成功,并且在运行任何简单的选择查询时,它给了我以下错误:-
DB2 SQL 错误:SQLCODE=-204、SQLSTATE=42704、SQLERRMC=DB2ADMIN.LOGIN、DRIVER=3.57.82
我有一个名为 onp 的数据库和一个名为“login”的表,其中有一个名为“login”的表,其中包含两个字段用户名和密码。
查询我正在运行
-
从登录中选择 *;给我错误
DB2 SQL 错误:SQLCODE=-204,SQLSTATE=42704,SQLERRMC=DB2ADMIN.LOGIN,DRIVER=3.57.82
-
从 system.login 中选择 *;给我错误:-(//系统是架构名称)
DB2 SQL 错误:SQLCODE=-551, SQLSTATE=42501, SQLERRMC=DB2ADMIN;SELECT;SYSTEM.LOGIN, DRIVER=3.57.82
我已经尝试了网上所有的资源并且完全用尽了。请帮帮我
【问题讨论】:
【参考方案1】:我对 DB2 了解不多,但是查找错误代码...
第一个错误是因为你没有指定架构,所以找不到登录表。
SQLCODE -204 对象未定义到 DB2
DB2 显然要求您指定模式名称,否则它会在模式中查找与您的登录用户同名的名称。
您必须使用SET SCHEMA
或完全限定表名。
第二个错误是因为您没有执行该选择的权限:
SQLCODE -551,错误:没有 执行操作的特权 对象
我不确定为什么 db2admin 用户无法从该表中进行选择...
资源:List of DB2 SQLCODEs
【讨论】:
-204 还表示完全限定表名中指定的模式不正确或不存在。 如果你有一个命令行,下面的帮助db2 ? SQLnnnn
其中 nnnn 是 4 位 sql 代码(如果需要,在左侧扩展为 0)。这将打印错误说明。【参考方案2】:
发生 SQL CODE 551,因为连接用户没有执行操作的权限。
转到控制中心 - 转到用户组和对象并选择 DB2ADMIN(假设此用户是连接到 DB2 的用户)
勾选以下所有复选框
向用户授予架构访问权限
向用户授予表访问权限
【讨论】:
【参考方案3】:我遇到了同样的问题,我通过在我的实体中添加 Schema 解决了它:
@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable
...
【讨论】:
谢谢@ilias,这解决了我的问题。 这适用于 DB2 但不适用于 H2 数据库,知道为什么吗?【参考方案4】:您也可以通过以下方式解决问题:
只需向您连接到 DB2 的用户授予适当的权限。
【讨论】:
以上是关于DB2数据库连接问题的主要内容,如果未能解决你的问题,请参考以下文章