2016-09-29 110 views
0

我收到以下異常Progress數據庫連接: -無法建立與使用JDBC

java.sql.SQLException: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Access denied(Authorisation failed) 
    at com.ddtek.jdbc.openedge.client.ddd.aw(Unknown Source) 
    at com.ddtek.jdbc.openedge.client.ddd.j(Unknown Source) 
    at com.ddtek.jdbc.openedge.OpenEdgeImplConnection.j(Unknown Source) 
    at com.ddtek.jdbc.openedgebase.BaseConnection.b(Unknown Source) 
    at com.ddtek.jdbc.openedgebase.BaseConnection.k(Unknown Source) 
    at com.ddtek.jdbc.openedgebase.BaseConnection.b(Unknown Source) 
    at com.ddtek.jdbc.openedgebase.BaseConnection.a(Unknown Source) 
    at com.ddtek.jdbc.openedgebase.BaseDriver.connect(Unknown Source) 
    at java.sql.DriverManager.getConnection(DriverManager.java:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:247) 
    at com.ncr.sj250216.JdbcTest.main(JdbcTest.java:18) 

有我的代碼沒有編譯時錯誤,我使用權瓶當引用的庫。

 package com.ncr.sj250216; 
     import java.sql.*; 
     public class JdbcTest 
     { 
      public static String  
URL="jdbc:datadirect:openedge://sun3899.daytonoh.ncr.com:28409;DatabaseName=dispatch"; 
    public static String username="CSMSRUP"; 
    public static String password=null; 
    public static void main(String [] args) 
    { 

    try 
     { 

     Class.forName ("com.ddtek.jdbc.openedge.OpenEdgeDriver"); 
     System.out.println("Driver loaded"); 
     Connection conn = DriverManager.getConnection(URL,username,password); 
     System.out.println("Connected"); 
     Statement stmt = conn.createStatement(); 
     System.out.println("Statement created"); 
     ResultSet rs = stmt.executeQuery("select remark from pub.dupdate_remarks"); 
     System.out.println("ResultSet : \n"); 
     while (rs.next()) 
     { 
     System.out.println(rs.getString(1)); 
     } 
     System.out.println("AFTER CRUISING THROUGH THE RESULT SET"); 
     rs.close(); 
     stmt.close(); 
     conn.close(); 
     } 
     catch (Exception x) 
     { 
      x.printStackTrace(); 
     } 
    } 
} 

回答

1

Access deniedAuthorization failed意味着你要麼有錯誤的用戶ID &密碼,或者您正試圖連接到錯誤分貝。

如果您有權訪問該數據庫上運行,你可以使用進度sqlexp命令行工具來測試您的憑據服務器:

sqlexp -user userName -password passWord -db dnName -S servicePort 

或者你可以使用任何流行的基於Windows的SQL查詢工具來嘗試連接...

+0

我現在面臨的問題是,如果密碼不爲空,但是當DBA將密碼設置爲空時,我能夠連接,我無法建立連接。 –

+0

有沒有一種方法可以用null作爲密碼來訪問數據庫? –

+0

嘗試使用「」而不是null這個詞。或者不要指定-password參數。 IOW:sqlexp -user用戶名-db dbName -S portNum –