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.
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)
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.
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.
After upgrading Oracle 12c or higher versions
for java version jdk7 & jdk8 supported ojdcc7.jar
for java version jdk6 ojdbc6.jar
This worked for us...
Download [ojdcc7.jar]: https://mvnrepository.com/artifact/com.oracle/ojdbc7/12.1.0.2
Related
all
I'm trying to connect to an Oracle 19C database. I have installed two Oracle Clients (11g and 12c) because we need to support legacy programs. I can connect with no issue with any user using sqlplus through the 12c client. But if I use the 11g (11.2.0) client with any user. I always get:
ERROR:
ORA-01017: invalid username/password; logon denied
Both clients have exactly the same sqlnet.ora and tnsnames.ora files, so both clients point to the same database.
Any idea? Do I need to set some specific configuration in the 19c server? Or do I need to make some change in the 11g client? Is this even possible?
Thank you.
Have a look at Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)
#9 - 11.2.0.3 or 11.2.0.4 only. For Oracle Autonomous Transaction Processing and Oracle Autonomous Data Warehouse, there is additional limitation and 11.2.0.4 is the minimum supported client version.
Usually it is a bad idea to install more than one Oracle client (i.e. one each for 32-bit and 64-bit).
For some components, e.g. "Oracle OleDB Provider" it is even not possible to have more than just one version (again, one each for 32-bit and 64-bit) installed. This is a limitation of the old Windows COM architecture.
For other components it may work, however you need to set your %PATH% environment variable accordingly that it points to the correct folder where currently desired version is installed.
Add to sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
Change the password in 11 client
In my current project, facing problem of connecting the oracle server from oracle client. Here are the details
Oracle Server 12.2.0.1 64-bit
Oracle Client 12.2.0.1 32-bit
But after analysis, I noticed that I have a common requirement to connect all the oracle servers e.g. 11g, 12c, 18c, 19c from any of the oracle client.
I tried to find common version of oracle.dataaccess.dll which will work for all the above oracle servers from any of the oracle clients. But I couldn't able to find. For example 4.122.19.1 works for all the servers only if client is 19c. For 12c client, it's not working and so on. Is there any common version of oracle.dataaccess.dll available to serve this purpose?
Or do I need to use some other assembly in my project?
I also tried to use Oracle.ManagedDataAccess.dll. But it has an issue of locating the tnsnames.ora.
Any help/suggestions will be greatly appreciated.
I have two Oracle clients installed on my 32-bit developer machine (12.1.0.4 and 11.2). I have both installed with ODT with ODAC. I am using ODP.NET with the version 12 client for most of the newer applications that connect to newer Oracle databases. But I have legacy code that connects to an Oracle 9 database, and does so through System.Data.OracleClient. The version 12 client is too new to connect to Oracle 9.
My ODP.NET apps work fine. However, I can't get my legacy code to connect to the Oracle 9 database, if the version 12 client is on my machine. I have tried to set the ORACLE_HOME and PATH environment variables, but it has had no effect. When the connection is attempted it is still trying to use the Version 12 client and fails. If I uninstall the version 12 client, the version 11 client works fine.
Is there a way in the connection string for System.Data.OracleClient to specify which client to use, or is there another way to achieve what I need to do?
My team are trying to migrate from ORACLE 10g to 11g. These are our system specs:
Our current production server:
ORACLE 10.2g
ORACLE Application Express(3.0)
Apache
Red Hat 64 bit
Our new server (not yet in production):
ORACLE 11.2g
ORACLE Application Express (4.1.1)
ORACLE HTTP Server
Red Hat 64 bit
We have managed to setup 11g, install APEX 4.1 and apply the recent patchset.
The only bit that's delaying us with our migration is that our business users have access to Crystal Reports XI, MS Access/Excel 2003 whcih they use to connect to our database. A typical user has Window XP SP 3 (32bit) operating system. At the moment we are using Microsoft ODBC for Oracle driver (version 2.575.1132.00) to connect to our 10g Database and have not had any issues. However when we try connect to 11g we keep getting ORA-03113: end-of-file on communication channel errors. In ORACLE SQL Developer, we're able to connect to our 11g instance using the "basic" connection. I have also used the "TNS" entries and that works well.
I think the business users obtained the Microsoft ODBC for Oracle driver by installing ORACLE Discover 3.1.3.6 which is used for another Oracle DB. They also have Oracle Client 7.3.3 which I can see Oracle73 (2.00.03.01) mentioned in the ODBM Data Source Admin screen.
We have tried googling for a result and after various tests, we have come to the conclusion that it is an ODBC driver issue. As far as our understand it ORACLE SQL Developer uses a different JAVA based driver to connect so it does not use the Microsoft version.
Can someone confirm that our understanding is correct about there being a compatibility issues with Microsoft ODBC for Oracle driver (version 2.575.1132.00) and 11.2g?
If so, what could you recommend a compatible driver to use with Crystal and Access/excel to extract the data?
I think the business users obtained the Microsoft ODBC for Oracle driver by installing ORACLE Discover 3.1.3.6 which is used for another Oracle DB. They also have Oracle Client 7.3.3 which I can see Oracle73 (2.00.03.01) mentioned in the ODBM Data Source Admin screen.
The Microsoft ODBC Driver for Oracle is written using an ancient version of the OCI (Oracle Call Interface) API that was deprecated when Oracle 8 was released (which was more than a decade and 11 major releases ago). Microsoft chose to desupport this driver rather than port it to the new version of the OCI API. Oracle 7 clients can connect to Oracle 10.2 databases but Oracle does not support connections between Oracle 7 clients and Oracle 11.2 databases.
You'll need to upgrade the version of the Oracle client that is installed on the business user's machines and you'll want to use the latest version of the Oracle ODBC driver that is appropriate for that version of the Oracle client. Assuming that you install the 11.2 version of the Oracle client (the only reason not to upgrade all the way to the 11.2 client would be if the users still needed to connect to older databases that don't support connections from an 11.2 client), you'd want to use the most recent version of the 11.2.0.x Oracle ODBC driver. The Oracle client install should also have the option to install a version of the Oracle ODBC driver-- that should be sufficient as well.
I recently upgraded my oracle client to 10g (10.2.0.1.0).
Now when I try to connect to a legacy 8.0 database, I get
ORA-03134: Connections to this server version are no longer supported.
Is there any workaround for this problem, or do I have to install two clients on my local machine?
Yes, you can connect to an Oracle 8i database with the 10g client, but the 8i Database requires the 8.1.7.3 patchset, which you can get from Oracle's Metalink support site (requires login).
Here's an Oracle forum post with the details.
If updating your Oracle Database isn't an option, then you can have 2 different clients installed (in different "Oracle Homes" (or directories), and use the selecthome.bat file to switch between your installed clients.
For example, before connecting to 8i, you'd run:
C:\Oracle\Client1_8i\bin\selecthome.bat
or this to use your Oracle 10g client:
C:\Oracle\Client2_10g\bin\selecthome.bat
I had to connect a C# code to an Oracle 7 (I know you it's 8...)... the only way I get it was to get the CD to install the Oracle Server and to go in the "Optional Configuration Component" and to use the Oracle73 Ver2.5.
I think you should go check the CD of the Oracle 8 Server and check if an ODBC is still available.
The best way to connect an Oracle 8.1.7 and higher is through Instant Client. Download Instant client 10.2 from oracle site, copy all files in the same folder where .NET assemblies resides and use classes located in System.Data.OracleClient. This work for me in .NET 4 project and oracle DB 8.1.7 server.