Een vriendelijke DB-beheerder kwam te hulp en ontdekte dat dit eigenlijk een Oracle-bug is:
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.
En nu - hou je hoed vast:
Available Workarounds:
----------------------
Use OCI.
Merk op dat ik 11.2.0.4 heb gebruikt, terwijl de bug zegt
Tested Versions:
----------------
JDBC THIN Driver 11.1.0.6.0 and 11.1.0.7.0
Dus blijkbaar bestaat het al een tijdje. Ik weet niet zeker of ik dit begrijp - waarom brengen ze nieuwe versies van deze driver uit als het niet lukt om je op de juiste manier met de database te verbinden? Het lijkt erop dat dit het eerste probleem is waar iedereen tegenaan loopt bij het gebruik van de dunne driver?
Maar toen heeft onze lokale DB-beheerdersheld dit opgegraven:
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 heb ik deze regel toegevoegd aan de VM-argumenten (Uitvoeren -> Configuraties uitvoeren -> Argumenten -> VM-argumenten -> add -Doracle.jdbc.thinLogonCapability=o3) en ziedaar, ik kan eindelijk in de database.