Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-01017 lors de la connexion via le pilote léger jdbc

Un administrateur de base de données amical est venu à la rescousse et a découvert qu'il s'agissait en fait d'un bogue 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.

Et maintenant, accrochez-vous à vos chapeaux :

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

Notez que j'ai utilisé 11.2.0.4, alors que le bogue dit

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

Donc apparemment ça fait un moment que ça existe. Je ne suis pas sûr de comprendre - pourquoi sortent-ils de nouvelles versions de ce pilote s'il échoue à vous connecter correctement à la base de données? Il semble que ce soit le premier problème que tout le monde rencontre lors de l'utilisation du pilote léger ?

Mais ensuite, notre héros administrateur de base de données local a déterré ceci :

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. 

Dans Eclipse, j'ai ajouté cette ligne aux arguments VM (Run -> Run Configurations -> Arguments -> VM arguments -> add -Doracle.jdbc.thinLogonCapability=o3) et, voilà, je peux enfin entrer dans le base de données.