web-dev-qa-db-fra.com

ORA-28040: Aucune exception de protocole d'authentification correspondante

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?

67
Aman Adhikari

J'ai supprimé le fichierojdbc14.jaret utiliséojdbc6.jarà la place et cela a fonctionné pour moi

110
Aman Adhikari

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.

48
Simon

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

3
Werner Bisschoff

J'ai résolu ce problème en utilisant ojdbc8.jar. Oracle 12c est compatible avec ojdbc8.jar 

1
Shardendu

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.

  1. Sélectionnez le projet dans Project Explorer
  2. Faites un clic droit sur Project -> Build Path -> Configure Build Path
  3. Allez à l'onglet Order and Export et sélectionnez ojdbc.jar
  4. Cliquez sur le bouton TOP pour le déplacer en haut
0
Sandesh Gupta

Ajouter 

SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

est la solution idéale sql.ora répertoire ..\product\12.1.0\dbhome_1\NETWORK\ADMIN

0
Birhan Nega

il suffit d'installer ojdbc-full, qui contient la version 12.1.0.1.

0
Ali Mhamad Slim

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.

0
CodeArt