sql >> Databasteknik >  >> RDS >> Oracle

ORA-01017 vid anslutning via jdbc thin driver

En vänlig DB-administratör kom till undsättning och upptäckte att detta faktiskt är en Oracle-bugg:

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.

Och nu – håll i hattarna:

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

Observera att jag använde 11.2.0.4, medan felet säger

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

Så tydligen har det funnits ett tag. Jag är inte säker på att jag förstår det här - varför släpper de nya versioner av den här drivrutinen om det inte går att ansluta dig till databasen på rätt sätt? Verkar att detta skulle vara det första problemet alla stöter på när de använder den tunna drivrutinen?

Men sedan grävde vår lokala DB-administratörshjälte upp det här:

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. 

I Eclipse har jag lagt till den här raden till VM-argumenten (Kör -> Kör konfigurationer -> Argument -> VM-argument -> lägg till -Doracle.jdbc.thinLogonCapability=o3) och, se och se, jag kan äntligen komma in i databas.



  1. Läser arabisk text från Oracle-databasen kodad i WE8ISO8859P1 med java

  2. Hur LEAST() fungerar i MariaDB

  3. dyld:lat symbolbindning misslyckades för php oic8 på Apple M1

  4. Aggregera kolumner med ytterligare (distinkta) filter