ora 28040 no matching authentication protocol как исправить
ORA-28040: Нет подходящего протокола аутентификации: обновление Oracle 12c
Мы перевели нашу базу данных Oracle на 12c с 11g. У нас есть устаревшее приложение, работающее на Java 1.5 и использующее ojdbc14.jar.
Наше приложение не может создать соединение с ошибкой базы данных, говоря:
Я хотел ответить ORA-28040: нет исключения соответствующего протокола аутентификации, и попытался обновить мой ojdbc14.jar до ojdbc6.jar.
Теперь у меня другое сообщение об ошибке:
Не уверен, что именно мы должны сделать, чтобы приложение заработало.
8 ответов
Недавно у меня была такая же ошибка с двумя разными приложениями:
Второе решение, упомянутое в тот же пост, на который вы ссылались, сработал для нас.
Обходной путь: установите SQLNET.ALLOWED_LOGON_VERSION = 8 в файле oracle / network / admin / sqlnet.ora.
Мы работали с нашими администраторами баз данных, чтобы установить указанную выше опцию в sqlnet.ora на сервере базы данных. Это решило нашу проблему. Надеюсь, это кому-то поможет.
У нас была эта ошибка, когда мы перешли с 11g на 12c, я могу получить правильный ответ через tnsping «servername» (это первый шаг, который нам нужно проверить с помощью cmd). После этого мы понимаем, что сервер базы данных может обрабатывать только 64-битный запрос (в моем случае я использовал WinSQL, и он всегда проверял 32-битный). Итак, чтобы исправить это, попросите вашего администратора запустить сервер для 32-битного запроса, или вы можете перейти к разработчику SQL, который работает для меня.
Основная проблема заключается в том, что тонкий клиент JDBC 10g использует протокол аутентификации SHA-1, этот протокол не разрешен в 12c, поэтому он выдает ошибку.
И я добавил следующее:
Поэтому мне пришлось остановиться и запустить слушателя:
Наконец, я перезапускаю базу данных.
Это должно быть только временное решение
Я получал ORA-28040 в Sqldeveloper (версия 1.5.5) для всех подключений. Я установил SQLNET.ALLOWED_LOGON_VERSION = 8, но ошибка не исчезла. Затем я включил «Использовать драйвер OCI / Thick» в меню «Инструменты-> Настройки-> База данных-> Дополнительные параметры». Это сработало.
У меня возникла проблема с подключением к БД после перехода на ORACLE 12c. Ошибка была: java.sql.SQLException: ORA-28040: Нет подходящего протокола аутентификации. После установки этого параметра SQLNET.ALLOWED_LOGON_VERSION = 8 проблема была решена.
Ошибка при подключении: «ORA-28040: No matching authentication protocol exception»
Пробую подключить Grails проект к Oracle БД 12c. Но когда запускаю приложение, то получаю исключение:
Caused by: org.apache.commons.dbcp.SQLNestedException:
Cannot create PoolableConnectionFactory (ORA-28040:
No matching authentication protocol)
Добавил следующее в sqlnet.ora и пробовал установливать значения 10,11,12 :
, но с никаким из них не заработало.
Может кто-то помочь с этой проблемой?
2 ответа 2
В оф. документации эта ошибка упомянута в контексте 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.
Предложенное решение: установить SQLNET.ALLOWED_LOGON_VERSION=8 на сервере БД.
В этом ответе ссылка на фэйк QA, поэтому перенёс только полезный комментарий под ним.
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.
11 Answers 11
I deleted the ojdbc14.jar file and used ojdbc6.jar instead and it worked for me
Here is some text I found at experts-exchange:
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.
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: нет соответствующего исключения протокола аутентификации
Я пытаюсь подключить проект grails к Oracle databse (Oracle 12c) в системе windows(8). Однако всякий раз, когда я запускаю свое приложение, я получаю следующее исключение:
В соответствии с интернет-предложением я также попытался отредактировать мой *.Ора!—5—> файл, но он не работает.
здесь я попытался назначить (10,11,12), но ни один из них не работает.
7 ответов
Я удалил ojdbc14.Джар файл и используется ojdbc6.Джар вместо этого, и это сработало для меня
вот текст, который я нашел в эксперты-обмен:
в 12.1, значение по умолчанию для SQLNET.ALLOWED_LOGON_VERSION параметр обновлен до 11. Это означает, что клиенты базы данных использование тонких драйверов JDBC pre-11g не может аутентифицироваться в базе данных 12.1 серверы, кроме theSQLNET.Параметр ALLOWED_LOGON_VERSION имеет значение старое значение по умолчанию 8.
это вызовет 10.2.0.5 Oracle RAC создание базы данных с помощью DBCA to сбой с ORA-28040: нет ошибки протокола проверки подлинности в 12.1 среды инфраструктуры Oracle ASM и Oracle Grid.
обходной путь: установите SQLNET.ALLOWED_LOGON_VERSION=8 в оракул/сети/администратор/заменить sqlnet.файл ora.
за исключением добавления следующего в заменить sqlnet.Ора!—4—>
Я также добавил следующее как к клиенту, так и к серверу, что разрешило мою проблему
я использовал eclipse, и после попытки всех других ответов это не сработало для меня. В конце концов, то, что сработало для меня, было перемещение ojdb7.jar в верхней части пути сборки. Это происходит, когда несколько jars имеют конфликтующие же классы.
ORA-28040: нет соответствующего исключения протокола аутентификации
Я пытаюсь подключить Мой проект grails к Oracle databse(Oracle 12c) в системе windows(8). Однако всякий раз, когда я запускаю свое приложение, я получаю следующее исключение :
согласно предложению интернета я также попытался отредактировать мой *.Ора файл, но он не работает.
я добавил следующий фрагмент в sqlnet.Ора file:
здесь я попытался назначить (10,11,12) но ни один из них не работает.
7 ответов:
Я удалил ojdbc14.банку файл и используется ojdbc6.банку вместо этого и это сработало для меня
в 12.1, значение по умолчанию для SQLNET.ALLOWED_LOGON_VERSION параметр был обновлен до 11. Это означает, что клиенты базы данных использование драйверов pre-11g JDBC thin не может аутентифицироваться в базе данных 12.1 серверы разве что theSQLNET.Параметр ALLOWED_LOGON_VERSION имеет значение старый дефолт 8.
это вызовет 10.2.0.5 Oracle RAC создание базы данных с помощью DBCA to сбой с ORA-28040: нет соответствующей ошибки протокола аутентификации в 12.1 среды Oracle ASM и Oracle Grid Infrastructure.
обходной путь: установите SQLNET.ALLOWED_LOGON_VERSION=8 в oracle / network / admin / sqlnet.Ора файл.
за исключением добавления следующего в sqlnet.Ора
Я также добавил следующее как для клиента, так и для сервера, что решило мою проблему
я использовал eclipse и после попытки всех других ответов это не сработало для меня. В конце концов, то, что сработало для меня, было перемещением ojdb7.jar к началу в пути сборки. Это происходит, когда несколько банок имеют конфликтующие же классы.