PROBLEM:

We have recently upgraded our database to Oracle 12c. Post upgrade, when they development Team tried to connect to the database using JDBC driver, Got error as  ORA-28040: No matching authentication protocol.

 

SOLUTION:

This is because, the development is using old JDBC drivers, which are not compatible to Oracle 12c. As development team ruled out upgrading drivers without through testing, Below workaround was implemented.

We add the parameter SQLNET.ALLOWD_LOGON_VERSION_SERVER=8 in sqlnet.ora file under  $ORACLE_HOME/rdbms/admin .

For RAC system, add the parameter in sqlnet.ora file on all the nodes.  And no need to restart the listener after changing sqlnet.ora.

Sometimes, parameter also need to be added  in $GRID_HOME/network/admin/sqlnet.ora.

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

After adding the parameter, through JDBC connection to the database was successful.

So if you have legacy systems and facing this same, then adding this parameter will fix this issue. Though it will expose it to security loopholes.