Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-01017 durante la connessione tramite il thin driver jdbc

Un amichevole amministratore di DB è venuto in soccorso e ha scoperto che questo è in realtà un bug di Oracle:

Problem Description:
--------------------
When trying to connect by using the JDBC THIN 11g driver to a database 11g 
using Enterprise User Security (EUS) connections throw invalid username/

When usign the JDBC OCI driver the connection can be made.

E ora, tieniti i tuoi cappelli:

Available Workarounds:
----------------------
Use OCI.

Nota che ho usato 11.2.0.4, mentre il bug dice

Tested Versions:
----------------
JDBC THIN Driver 11.1.0.6.0 and 11.1.0.7.0

Quindi a quanto pare è in circolazione da un po'. Non sono sicuro di averlo capito:perché stanno pubblicando nuove versioni di questo driver se non riesce a collegarti correttamente al database? Sembra che questo sarebbe il primo problema in cui tutti si imbattono quando si utilizza il thin driver?

Ma poi, il nostro eroe amministratore DB locale ha scoperto questo:

Set the property oracle.jdbc.thinLogonCapability=o3 for the JDBC connection by passing the option oracle.jdbc.thinLogonCapability=o3 on the command line.  

For example:
java -Doracle.jdbc.thinLogonCapability=o3 <Java Class>

There is no loss of security when following this workaround. 

In Eclipse, ho aggiunto questa riga agli argomenti VM (Esegui -> Esegui configurazioni -> Argomenti -> Argomenti VM -> aggiungi -Doracle.jdbc.thinLogonCapability=o3) e, ecco, posso finalmente entrare nel banca dati.