ORA-28040: Geen overeenkomende uitzondering voor authenticatieprotocol

Ik probeer mijn Grails-project te verbinden met Oracle databse(Oracle 12c) in het Windows(8)-systeem. Telkens wanneer ik mijn toepassing uitvoer, krijg ik echter de volgende uitzondering:

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

Volgens internetsuggestie heb ik ook geprobeerd mijn *.orabestand te bewerken, maar het werkt niet.

Ik heb het volgende fragment toegevoegd aan het bestand sqlnet.ora:

SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

Hier heb ik geprobeerd (10,11,12) toe te wijzen, maar geen van beide werkt.

Kan iemand me hier alsjeblieft mee helpen?


Antwoord 1, autoriteit 100%

Ik heb het bestand ojdbc14.jarverwijderd en in plaats daarvan ojdbc6.jargebruikt en het werkte voor mij


Antwoord 2, autoriteit 37%

Hier is wat tekst die ik heb gevonden op experts-exchange:

Bug 14575666

In 12.1, de standaardwaarde voor de SQLNET.ALLOWED_LOGON_VERSION
parameter is bijgewerkt naar 11. Dit betekent dat databaseclients
het gebruik van pre-11g JDBC thin-stuurprogramma’s kan niet worden geverifieerd bij de 12.1-database
servers tenzij de parameter SQLNET.ALLOWED_LOGON_VERSION is ingesteld op de
oude standaard van 8.

Hierdoor wordt een 10.2.0.5 Oracle RAC-database gemaakt met DBCA om:
mislukt met de ORA-28040: Geen overeenkomende authenticatieprotocolfout in
12.1 Oracle ASM- en Oracle Grid Infrastructure-omgevingen.

Oplossing: stel SQLNET.ALLOWED_LOGON_VERSION=8 in de
oracle/network/admin/sqlnet.ora-bestand.


Antwoord 3, autoriteit 5%

Dit behalve voor het toevoegen van het volgende aan sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

Als u de foutmelding “ORA-01017: ongeldige gebruikersnaam/wachtwoord; aanmelding geweigerd” krijgt, moet u uw wachtwoord opnieuw maken.


Antwoord 4, autoriteit 4%

Ik heb dit probleem opgelost door ojdbc8.jar te gebruiken.
Oracle 12c is compatibel met ojdbc8.jar


Antwoord 5, autoriteit 3%

Ik gebruikte eclipse en nadat ik alle andere antwoorden had geprobeerd, werkte het niet voor mij.
Wat uiteindelijk voor mij werkte, was het verplaatsen van de ojdb7.jarnaar boven in het bouwpad. Dit gebeurt wanneer meerdere potten conflicterende dezelfde klassen hebben.

  1. Selecteer project in Project Explorer
  2. Klik met de rechtermuisknop op Project -> Build Path -> Configure Build Path
  3. Ga naar het tabblad Order and Exporten selecteer ojdbc.jar
  4. Klik op de knop TOPom deze naar boven te verplaatsen

Antwoord 6, autoriteit 2%

Behalve voor het toevoegen van het volgende aan sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

Ik heb ook het volgende toegevoegd aan zowel de client als de server, waardoor mijn probleem is opgelost

SQLNET.AUTHENTICATION_SERVICES = (NONE)

Zie ook bericht
ORA-28040: Geen overeenkomend authenticatieprotocol


Antwoord 7, autoriteit 2%

Heel oude vraag maar met wat aanvullende informatie die iemand anders kan helpen. Ik kwam ook dezelfde fout tegen en ik gebruikte ojdbc14.jar met 12.1.0.2 Oracle Database. Op de officiële webpagina van Oracle staat deze informatie vermeld welke versie welke databasestuurprogramma’s ondersteunt. Hier is de linken het lijkt erop dat met Oracle 12c en Java 7 of 8 de juiste versie is ojdbc7.jar.

In de ojdbc6.jar is voor 11.2.0.4.


Antwoord 8

Toevoegen

SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

is de perfecte oplossing
sql.ora-map
..\product\12.1.0\dbhome_1\NETWORK\ADMIN


Antwoord 9

Mijn initiële fout is: ORA-28040: Geen overeenkomende uitzondering voor authenticatieprotocol

Mijn DB-versie is 12.2 (Solaris) en de clientversie is 11.2 (windows). Ik heb hieronder toegevoegd in zowel server als client sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

tijdens het verbinden heb ik een ongeldige gebruikersnaam en wachtwoord gekregen, daarom heb ik het wachtwoord (hetzelfde wachtwoord) opnieuw gemaakt in de database, waardoor mijn probleem is opgelost.


Antwoord 10

Hoewel in de meeste gevallen het vervangen van de ojdbc driver jar de oplossing zal zijn, was mijn geval anders.

Als u zeker weet dat u het juiste ojdbc-stuurprogramma gebruikt. Controleer nogmaals of u daadwerkelijk verbinding maakt met de database die u denkt te zijn. In mijn geval wees de jdbc-configuratie (in Tomcat/conf) naar een andere database met een andere Oracle-versie.


Antwoord 11

Installeer gewoon OJDBC-FULL, die de release van 12.1.0.1 bevat.

Other episodes