ORA-28040:无身份验证协议

时间:2015-11-27 19:33:04

标签: java database oracle jdbc vpn

我正在尝试通过简单的JDBC连接到远程数据库,但我正在下面

import java.sql.*; 
import oracle.jdbc.*;
import java.io.*;
import oracle.jdbc.pool.OracleDataSource;

public class JDBC {

public static void main (String args []) throws SQLException {
    try
    {

       //Connecting to Oracle server
    OracleDataSource ds = new oracle.jdbc.pool.OracleDataSource();
    ds.setURL("jdbc:oracle:thin:@remotehostname:1521:dbname");
    Connection conn = ds.getConnection("my username", "my password");
    System.out.println("Connected to DB");
    }
    catch (SQLException ex) { System.out.println ("\n*** SQLException 
 caught ***\n" + ex.getMessage());}
     catch (Exception e) {System.out.println ("\n*** other Exception  caught ***\n");}
 }
} 

代码:

moltiply :: QT a -> Int -> QT a

我添加了ojdbc6.jar和所有支持jar来构建路径。我能够通过VPN连接到远程,但不能通过JDBC连接到任何指南...

1 个答案:

答案 0 :(得分:1)

来自docs.oracle.com 如果客户端版本未达到或超过SQLNET.ALLOWED_LOGON_VERSION_SERVER参数(sqlnet.ora文件)定义的值,则身份验证将失败并显示ORA-28040:没有匹配的身份验证协议错误或ORA-03134:此服务器版本的连接是不再支持错误。

您可以使用以下命令

检查您的驱动程序版本
$java -jar ojdbc6.jar -getversion

尝试在sqlnet.ora文件中设置SQLNET.ALLOWED_LOGON_VERSION_SERVER以降低Oracle版本,如8,9或10。

查看此issue了解详情。