Ora 28040 no matching authentication protocol как исправить

Обновлено: 05.07.2024

Клиент на локалке XP Oracle 8.0.6,Forms 6.0

Установил Oracle 12c
в SQLNET.ORA прописал все,как положено
на сервере
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

На клиентской машине точно также

И самое интересное,что Plus80 вообще никак не реагирует на параметры в SQLNET.ORA
Добавляю,удаляю-пофиг

если я базу останавливаю-

SQL*Plus: Release 8.0.6.0.0 - Production on Tue Jun 19 12:03:27 2018
(c) Copyright 1999 Oracle Corporation. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3640
Additional information: -1429175133

Если база запущена

C:\orant1\NET80\ADMIN>plus80 adms@adms
SQL*Plus: Release 8.0.6.0.0 - Production on Tue Jun 19 12:04:30 2018
(c) Copyright 1999 Oracle Corporation. All rights reserved.

ERROR:
ORA-28040: No matching authentication protocol
Enter user-name:

по моей просьбе ситуация была повторена на другом сервере!
И все работает!

Установлено на RedHat Enterpise Oracle

У меня установлено

Operating System: Oracle Linux Server 7.5

CPE OS Name: cpe:/o:oracle:linux:7:5:server

Kernel: Linux 4.1.12-124.15.4.el7uek.x86_64

.
Уточню на всякий случай,12c именно которая 12.1.0.2.0
.

Итак,заново установил 12с,но уже не вручную (silent),а через Xming
И на всякий случай нажал кнопку "create database"

И уже к этой базе я приконнектился без проблем

И еще одна мелочь-в листенере 12с используется порт 1522
Так вот,если поменять на дефолтовый 1521,вылезает все та же ошибка -ORA-28040

выполняю задеплоенный модуль
получаю

пробовал ojdbc6.jar без sqlnet.ora SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

Нафига Вам вообще понадобилось SQLNET.ALLOWED_LOGON_VERSION_SERVER ?

Делаю поиск в google по этим словам и сразу же нахожу ответ, который кажется подходящим:

Или не все так просто (но я как-то в это не верю).

Что Вы подразумеваете под словами "пробовал ojdbc?.jar" - знаете только Вы. Мы даже не знаем, в каком режиме Вы соединяетесь с сервером ( OCI / thin ), какие настройки соединения в приложении.

В общем "обратитесь в службу поддержки Вашего приложения" ( C ) ))))

Пробую подключить Grails проект к Oracle БД 12c. Но когда запускаю приложение, то получаю исключение:

Нашёл предлоаемое решение и попробовал отредактировать .ora файл, но безуспешно.

Добавил следующее в sqlnet.ora и пробовал установливать значения 10,11,12 :

, но с никаким из них не заработало.

Может кто-то помочь с этой проблемой?


49.3k 148 148 золотых знаков 54 54 серебряных знака 211 211 бронзовых знаков

В оф. документации эта ошибка упомянута в контексте Oracle RAC, но решение действительно так же для некластерной БД:

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 the SQLNET.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 $crs_home/network/admin/sqlnet.ora file.

Предложенное решение: установить SQLNET.ALLOWED_LOGON_VERSION=8 на сервере БД.

В этом ответе ссылка на фэйк QA, поэтому перенёс только полезный комментарий под ним.

Комментарий:
Да, в моём случае это решило проблему, но возникла другая: invalid username/password , когда пытался подключится в JDeveloper 10 к Oracle БД 12c.

11 Answers 11

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

17.8k 5 5 gold badges 59 59 silver badges 61 61 bronze badges


3,002 3 3 gold badges 20 20 silver badges 31 31 bronze badges experience same issue while trying to connect Oracle 12c from pentaho kettle. removed ojdbc14.jar and its perfectly working! At least a brief explanation why this should work would be quite handy. For me, changing to ojdbc6.jar or ojdbc7.jar still failed because I had been constantly setting: oracle.jdbc.thinLogonCapability"="o3" which you no longer have to do against oracle 12c. Hope it can help someone else That works perfect after deleting ojdbc14.jar and using the ojdbc6.jar

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.


7,832 5 5 gold badges 38 38 silver badges 69 69 bronze badges Just for reference: This worked for me not deleting the ojdbc14.jar file and using ojdbc6.jar I am using a remote database server, i do not have access to machine, I can just connect to database using SQL Developer (Without error), but my application (deployed on Tomcat ) throws this error. I have changed the settings at my local machine, it is not working. Do i have to modify the settings on server machine?

This except for adding the following to sqlnet.ora

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

ORA-28040: No matching authentication protocol

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.


3,479 11 11 gold badges 27 27 silver badges 50 50 bronze badges 117 1 1 gold badge 1 1 silver badge 8 8 bronze badges

ORA-28040: No matching authentication protocol exception

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 :

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

I added following snippet in sqlnet.ora file :

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

Can anyone please help me with this ?


2,058 1 1 gold badge 14 14 silver badges 27 27 bronze badges


3,002 3 3 gold badges 20 20 silver badges 31 31 bronze badges

4 Answers 4

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

I then experienced the following error

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.


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:

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.


32.7k 6 6 gold badges 65 65 silver badges 120 120 bronze badges

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

Читайте также: