J'essaie de connecter mon projet grails à la base de données Oracle ( Oracle 12c ) dans le système Windows (8). Cependant, chaque fois que je lance mon application, j'obtiens l'exception suivante:
Caused by: org.Apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol
)
Caused by: Java.sql.SQLException: ORA-28040: No matching authentication protocol
Selon la suggestion d’Internet, j’ai aussi essayé d’éditer mon fichier * .ora mais cela ne fonctionne pas.
J'ai ajouté l'extrait suivant dans sqlnet.ora fichier:
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Ici, j'ai essayé d'assigner (10,11,12) mais aucun d'entre eux ne fonctionne.
Quelqu'un peut-il m'aider s'il vous plaît avec cela?
J'ai supprimé le fichierojdbc14.jaret utiliséojdbc6.jarà la place et cela a fonctionné pour moi
Voici un texte que j'ai trouvé sur experts-exchange :
Bug 14575666
Dans 12.1, la valeur par défaut de SQLNET.ALLOWED_LOGON_VERSION paramètre a été mis à jour à 11. Cela signifie que les clients de base de données L’utilisation de pilotes légers JDBC antérieurs à 11g ne permet pas de s’authentifier auprès de la base de données 12.1 serveurs sauf si le paramètre SQLNET.ALLOWED_LOGON_VERSION est défini sur ancien défaut de 8.
Cela entraînera une création de base de données Oracle RAC 10.2.0.5 à l'aide de DBCA vers échouer avec ORA-28040: aucune erreur de protocole d'authentification correspondante dans 12.1 Environnements Oracle ASM et Oracle Grid Infrastructure.
Solution de contournement: définissez SQLNET.ALLOWED_LOGON_VERSION = 8 dans le fichier Fichier Oracle/network/admin/sqlnet.ora.
Sauf pour ajouter ce qui suit à sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
J'ai également ajouté les éléments suivants au client et au serveur, ce qui a résolu mon problème.
SQLNET.AUTHENTICATION_SERVICES = (NONE)
Voir également post ORA-28040: Aucun protocole d’authentification correspondant
J'ai résolu ce problème en utilisant ojdbc8.jar. Oracle 12c est compatible avec ojdbc8.jar
J'utilisais Eclipse et après avoir essayé toutes les autres réponses, cela n'a pas fonctionné pour moi. À la fin, ce qui a bien fonctionné pour moi a été de déplacer le ojdb7.jar
en haut du chemin de construction. Cela se produit lorsque plusieurs fichiers JAR ont des classes identiques en conflit.
- Sélectionnez le projet dans
Project Explorer
- Faites un clic droit sur
Project -> Build Path -> Configure Build Path
- Allez à l'onglet
Order and Export
et sélectionnezojdbc.jar
- Cliquez sur le bouton
TOP
pour le déplacer en haut
Ajouter
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
est la solution idéale sql.ora répertoire ..\product\12.1.0\dbhome_1\NETWORK\ADMIN
il suffit d'installer ojdbc-full, qui contient la version 12.1.0.1.
Ceci sauf pour ajouter ce qui suit à sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
Si vous obtenez l'erreur "ORA-01017: nom d'utilisateur/mot de passe invalide; ouverture de session refusée", vous devez recréer votre mot de passe.