Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-01017 ao conectar através do driver jdbc thin


Um administrador de banco de dados amigável veio em socorro e descobriu que isso é realmente um bug do 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 agora - segurem seus chapéus:
Available Workarounds:
----------------------
Use OCI.

Observe que usei 11.2.0.4, enquanto o bug diz
Tested Versions:
----------------
JDBC THIN Driver 11.1.0.6.0 and 11.1.0.7.0

Então, aparentemente, já existe há algum tempo. Não tenho certeza se entendi isso - por que eles estão lançando novas versões desse driver se ele falhar ao conectar você ao banco de dados corretamente? Parece que esse seria o primeiro problema que todo mundo encontra ao usar o driver fino?

Mas então, nosso herói de administrador de banco de dados local desenterrou isso:
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. 

No Eclipse, adicionei esta linha aos argumentos da VM (Run -> Run Configurations -> Arguments -> VM arguments -> add -Doracle.jdbc.thinLogonCapability=o3) e, vejam só, posso finalmente entrar no base de dados.