ORA-28040: No matching authentication protocol exception

OracleOracle12c

Oracle Problem Overview


I am trying to connect my grails project to Oracle databse(Oracle 12c) in windows(8) system. However, whenever I run my application I get following exception :

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

According to internet suggestion I also tried editing my *.ora file but it is not working.

I added following snippet in sqlnet.ora file :

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

Here i tried assigning (10,11,12) but neither of them is working.

Can anyone please help me with this ?

Oracle Solutions


Solution 1 - Oracle

I deleted the ojdbc14.jar file and used ojdbc6.jar instead and it worked for me

Solution 2 - Oracle

Here is some text I found at experts-exchange:

> Bug 14575666 > > In 12.1, the default value for the SQLNET.ALLOWED_LOGON_VERSION > parameter has been updated to 11. This means that database clients > using pre-11g JDBC thin drivers cannot authenticate to 12.1 database > servers unless theSQLNET.ALLOWED_LOGON_VERSION parameter is set to the > old default of 8. > > This will cause a 10.2.0.5 Oracle RAC database creation using DBCA to > fail with the ORA-28040: No matching authentication protocol error in > 12.1 Oracle ASM and Oracle Grid Infrastructure environments. > > Workaround: Set SQLNET.ALLOWED_LOGON_VERSION=8 in the > oracle/network/admin/sqlnet.ora file.

Solution 3 - Oracle

This except for adding the following to sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

If you get "ORA-01017: invalid username/password; logon denied" error, then you need to re-create your password.

Solution 4 - Oracle

I resolved this issue by using ojdbc8.jar. Oracle 12c is compatible with ojdbc8.jar

Solution 5 - Oracle

I was using eclipse and after trying all the other answers it didn't work for me. In the end, what worked for me was moving the ojdb7.jar to top in the Build Path. This occurs when multiple jars have conflicting same classes.

> 1. Select project in Project Explorer > 2. Right click on Project -> Build Path -> Configure Build Path > 3. Go to Order and Export tab and select ojdbc.jar > 4. Click button TOP to move it to top

Solution 6 - Oracle

Except for adding the following to sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

I also added the following to both the Client and Server, which resolved my issue

SQLNET.AUTHENTICATION_SERVICES = (NONE)

Also see post <https://stackoverflow.com/questions/34398101/ora-28040-no-matching-authentication-protocol/43362249#43362249>

Solution 7 - Oracle

Very old question but providing some additional information which may help someone else. I also encountered same error and I was using ojdbc14.jar with 12.1.0.2 Oracle Database. On Oracle official web page this information is listed that which version supports which database drivers. Here is the link and it appears that with Oracle 12c and Java 7 or 8 the correct version is ojdbc7.jar.

In the ojdbc6.jar is for 11.2.0.4.

Solution 8 - Oracle

Adding

SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

is the perfect solution sql.ora directory ..\product\12.1.0\dbhome_1\NETWORK\ADMIN

Solution 9 - Oracle

My Initial error is : ORA-28040: No matching authentication protocol exception

My DB version is 12.2 (Solaris) and client version is 11.2 ( windows). I have added below in both server and client sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

while connecting, I have got invalid username and password hence I have recreated the password ( same password ) in database which is resolved my issue.

Solution 10 - Oracle

While for most cases replacing ojdbc driver jar will be the solution, my case was different.

If you are certain you are using correct ojdbc driver. Double check if you are actually connecting to the database you are thinking you are. In my case jdbc configuration (in Tomcat/conf) was pointing to different database that had different Oracle version.

Solution 11 - Oracle

just install ojdbc-full, That contains the 12.1.0.1 release.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAman AdhikariView Question on Stackoverflow
Solution 1 - OracleAman AdhikariView Answer on Stackoverflow
Solution 2 - OracleSimonView Answer on Stackoverflow
Solution 3 - OracleCodeArtView Answer on Stackoverflow
Solution 4 - OracleShardenduView Answer on Stackoverflow
Solution 5 - OracleSandesh GuptaView Answer on Stackoverflow
Solution 6 - OracleWerner BisschoffView Answer on Stackoverflow
Solution 7 - OracleKaranView Answer on Stackoverflow
Solution 8 - OracleBirhan NegaView Answer on Stackoverflow
Solution 9 - OracleArumugaraj KuthalingamView Answer on Stackoverflow
Solution 10 - Oracleuser435421View Answer on Stackoverflow
Solution 11 - OracleAli Mhamad SlimView Answer on Stackoverflow