I am facing this issue even after following the below settings.
Replacing ojdbc14.jar
with ojdbc6.jar
[also tried ojdbc5.jar
]
Added "SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
" to sqlnet.ora
file[under network/admin folder].
This is happening after upgrading the DB from 11g to 12c.
JDBC drivers have both a Java version and an Oracle version. The versions are usually correlated, but it's possible for an ojdbc14.jar to support a later version of Oracle than a ojdbc6.jar. Make sure you are using the latest version of ojdbc6.jar.
Run this command to see which version of Oracle the driver was built for:
>java -jar ojdbc6.jar -getversion
Oracle 11.2.0.3.0 JDBC 4.0 compiled with JDK6 on Thu_Jun_28_00:38:25_PDT_2012
#Default Connection Properties Resource
#Mon Dec 21 12:38:41 CST 2015
For SQLNET.ORA changes, to be safe you should restart both the listener and the database. This sounds extreme, but there are some parameters that require restarting the database.
Also make sure that you are modifying all relevant SQLNET.ORA files. If the database's Oracle home is different than the listener's Oracle home you should modify both.
ORA-28040: No matching authentication protocol
I faced a similar issue when trying to connect a
32-bit Oracle 11g Client to a 64-bit Oracle 12c Server
I then proceeded to add the following to sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
I then experienced the following error
ORA-01017: invalid username/password: logon denied
Adding the following to the Client sqlnet.ora as well as the Server, I was able to connect an old version of Toad and PL/SQL to the new 12c Server.
SQLNET.AUTHENTICATION_SERVICES = (NONE)
First of all the difference between ojdbc driver's versions depends on the version of the JDK you use drivers with.
So ojbdc14
is suitable for JDK version 1.4, ojdbc5
for JDK 1.5, and so on.
I'm currently using ojdbc7.jar
with a 12c database version since my environment uses a JDK 1.7, so upgrade this first.
Having said that, in the Parameters for the sqlnet.ora File for Oracle 12c release page you can read:
Purpose
To set the minimum authentication protocol allowed for clients, and
when a server is acting as a client, such as connecting over a
database link, when connecting to Oracle Database instances.
Usage Notes
The term VERSION in the parameter name refers to the version of the
authentication protocol, not the Oracle Database release.
If the version does not meet or exceed the value defined by this
parameter, then authentication fails with an ORA-28040: No matching
authentication protocol error.
The default for this property is 11.
Allowed values are 8,10,11,12 and 12a.
The recommended value is 12. Try this out.
Moreover there is a useful and interesting solution Database Administrators Stack Exchange
You should use the latest JDBC thin driver (12.1.0.2) and JDK8. With this configuration your driver will support the latest version of the database password verifier and your issue should be resolved.