首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DB2连接授权失败的原因: Java不支持安全机制

DB2连接授权失败的原因: Java不支持安全机制
EN

Stack Overflow用户
提问于 2013-05-23 04:36:19
回答 3查看 67.9K关注 0票数 6

我正在尝试用DB2JDBC Type4驱动程序配置Type4连接。但我得到了这个错误。

出现线程"main“中的异常jcc2013.64.104连接授权失败。原因:不支持安全机制。ERRORCODE=-4214,SQLSTATE=28000

我的代码是

代码语言:javascript
运行
复制
public Connection getConnection() throws ClassNotFoundException, InstantiationException,
                                         IllegalAccessException, SQLException{

   Driver driver = (Driver) Class.forName ( "com.ibm.db2.jcc.DB2Driver" ).newInstance(); 
  DriverManager.registerDriver(driver);
  Connection  connection = DriverManager.getConnection("jdbc:db2://hostname:portnumber
                                           /DBName", "username","password" );
    System.out.println( "From DAO, connection obtained " );
    return connection;  
}

异常日志:

代码语言:javascript
运行
复制
Exception in thread "main" com.ibm.db2.jcc.am.SqlInvalidAuthorizationSpecException:
[jcc][t4][201][11237][3.64.104] Connection authorization failure occurred. 
Reason: Security mechanism not supported. ERRORCODE=-4214, SQLSTATE=28000
    at com.ibm.db2.jcc.am.bd.a(bd.java:677)
    at com.ibm.db2.jcc.am.bd.a(bd.java:60)
    at com.ibm.db2.jcc.am.bd.a(bd.java:120)
    at com.ibm.db2.jcc.t4.b.f(b.java:2389)
    at com.ibm.db2.jcc.t4.b.a(b.java:1712)
    at com.ibm.db2.jcc.t4.y.b(y.java:3612)
    at com.ibm.db2.jcc.t4.y.a(y.java:477)
    at com.ibm.db2.jcc.t4.y.a(y.java:117)
    at com.ibm.db2.jcc.t4.b.c(b.java:1350)
    at com.ibm.db2.jcc.t4.b.b(b.java:1221)
    at com.ibm.db2.jcc.t4.b.b(b.java:788)
    at com.ibm.db2.jcc.t4.b.a(b.java:760)
    at com.ibm.db2.jcc.t4.b.a(b.java:421)
    at com.ibm.db2.jcc.t4.b.a(b.java:396)
    at com.ibm.db2.jcc.t4.b.<init>(b.java:334)
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:232)
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:198)
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:475)
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:116)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at com.test.connection.DB2ConnectionFactory.getConnection(DB2ConnectionFactory.java:19
    at com.test.connection.ConnectionTest.main(ConnectionTest.java:18)

我还为JDBC和SQLJ尝试了驱动程序支持的这些机制

代码语言:javascript
运行
复制
-CLIENT
-SERVER
-SERVER_ENCRYPT
-DATA_ENCRYPT
-KERBEROS
-GSSPLUGIN
-KRB_SERVER_ENCRYPT
-GSS_SERVER_ENCRYPT 

为了避免加密问题,我们将这个应用程序部署到linux盒中。因此,在需要安全连接的情况下,也会出现同样的错误。

我正在使用DB2 JDBC驱动程序版本v10.1fp1_jdbc_sqlj,我还为此尝试过9.59.1db2jcc4.jar文件。

我也尝试过使用type 2驱动程序,但在这种情况下,我得到了ClassNotFound错误-- COM.ibm.db2.jdbc.app.DB2Driver。类找不到。

但到目前为止什么都没起作用。任何帮助都是非常感谢的。一个多星期以来,我一直在努力解决这个问题。

EN

回答 3

Stack Overflow用户

发布于 2013-05-27 17:18:37

现在起作用了。问题在于DB2。您必须确保您的环境变量指向正确的文件夹。因此,请确保执行以下操作:

  • 每次更改后或对环境变量所做的所有更改之后,必须重新启动计算机。
  • 确保您使用的是JDBC Type 2驱动程序。除非您的DBA要求,否则不要选择Type 4

将帮助您确保代码能够与Windows驱动程序交互

代码语言:javascript
运行
复制
PATH=C:\Program Files\IBM\SQLLIB\BIN\db2jdbc.dll

LIB将帮助您的代码读取正确的库。即COM.ibm.db2.jdbc.app.DB2Driver

代码语言:javascript
运行
复制
LIB=;C:\PROGRA~1\IBM\SQLLIB\LIB

ClassPath:

代码语言:javascript
运行
复制
ClassPath = .;C:\PROGRA~1\IBM\SQLLIB\java\db2java.jar;
C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;
C:\PROGRA~1\IBM\SQLLIB\BIN\db2jdbc.dll;
C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;
C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;
C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_license_cu.jar;
C:\PROGRA~1\IBM\SQLLIB\java\db2java.jar;
C:\PROGRA~1\IBM\SQLLIB\BIN;C:\PROGRA~1\IBM\SQLLIB\java\jdk;
票数 3
EN

Stack Overflow用户

发布于 2013-05-23 16:24:04

当您在计算机中安装数据服务器客户端时,将使用类型2驱动程序。如果您在同一台客户端计算机中运行DB2服务器,则可以键入2服务器。

尝试使用数据服务器客户端,以便对本地计算机中的远程数据库进行编目,并尝试通过"db2 connection to DBName“建立连接--如果可以建立连接,则可以在Java中进行同样的操作。如果你不能,你可以选择目录,直到找到正确的。一旦您这样做,您可以连接到远程数据库。

票数 0
EN

Stack Overflow用户

发布于 2013-05-23 11:55:09

在服务器上配置了什么身份验证方法?是否使用自定义身份验证插件?您可以通过在数据库服务器上运行db2 get dbm cfg来获取此信息。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16705749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档