Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-01017 beim Verbinden über den jdbc Thin-Treiber

Ein freundlicher DB-Administrator kam zu Hilfe und stellte fest, dass dies eigentlich ein Oracle-Bug ist:

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.

Und jetzt - halt dich fest:

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

Beachten Sie, dass ich 11.2.0.4 verwendet habe, während der Fehler sagt

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

Scheint also schon eine Weile her zu sein. Ich bin mir nicht sicher, ob ich das verstanden habe - warum bringen sie neue Versionen dieses Treibers heraus, wenn es fehlschlägt, Sie richtig mit der Datenbank zu verbinden? Scheint, dass dies das erste Problem ist, auf das jeder stößt, wenn er den Thin-Treiber verwendet?

Aber dann hat unser lokaler DB-Admin-Held folgendes ausgegraben:

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 habe ich diese Zeile zu den VM-Argumenten hinzugefügt (Run -> Run Configurations -> Arguments -> VM arguments -> add -Doracle.jdbc.thinLogonCapability=o3) und siehe da, ich kann endlich einsteigen Datenbank.