2013-06-12 31 views
0

我想使用jdbc使用oracle os認證。在Oracle操作系統認證中需要幫助

我有solaris sparc 32位機器和oracle 10g。 我已經在後端設置了os身份驗證,並且用戶是ops $ oracle。 我正在使用以下代碼使用os身份驗證連接到數據庫。

String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<host>)" 
      + "(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))"; 

     //String url = "jdbc:oracle:thin:@<host>:1521:db1"; 
     Class.forName("oracle.jdbc.OracleDriver"); 
     Properties props = new Properties(); 

     props.setProperty(    OracleConnection.CONNECTION_PROPERTY_THIN_VSESSION_OSUSER,    
       "oracle"); 
     Connection conn = DriverManager.getConnection(url, props); 

但是,當我再運行這段代碼我得到以下錯誤::

java.sql.SQLException: ORA-01017: invalid username/password; logon denied 

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389) 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382) 
    at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:573) 
    at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431) 
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) 
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) 
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366) 
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at OracleOSAuth.main(OracleOSAuth.java:32) 

請幫我解決這個問題。

+0

我試了兩個網址,但同樣的錯誤即將到來。 –

+0

您需要將Oracle jar文件添加到此項目中。這個jar文件在oracle安裝路徑中可用。 – karthi

+0

是的......我已將jar文件ojdbc6.jar和ojdbc5.jar文件添加到路徑中。其實我試過兩個罐子。 –

回答

0

試試看看這個代碼。

Class.forName("oracle.jdbc.driver.OracleDriver") 
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@dbaprod1:1544:SHR1_PRD", username, passwd); 
Statement stmt = con.createStatement() ; 
PreparedStatement prepareUpdatePrice = con.prepareStatement("select * from table"); 
+0

@Abmanmanyu garg你試試這個... – karthi

+0

但是對於Oracle OS認證,密碼不是必需的。檢查此鏈接:: http://docs.oracle.com/cd/E18283_01/java.112/e16548/clntsec.htm#CIHCBCBC –

+0

此例外是意味着無效的用戶名和密碼..所以檢查它... – karthi