2015-12-21 6 views
3

Я столкнулся с этой проблемой даже после следующих настроек.ORA-28040: нет соответствующего протокола аутентификации

  1. Замена ojdbc14.jar с ojdbc6.jar [также попытался ojdbc5.jar]

  2. Добавлено "SQLNET.ALLOWED_LOGON_VERSION_SERVER=8" в SQLNET.ORA файл [в папке сети/администратора].

Это происходит после обновления БД от 11g до 12c.

ответ

1

Прежде всего разница между версиями драйвера ojdbc зависит от версии JDK, с которой вы используете драйверы. So ojbdc14 подходит для JDK версии 1.4, ojdbc5 для JDK 1.5 и т. Д.

В настоящее время я использую ojdbc7.jar с версией базы данных 12c, так как моя среда использует JDK 1.7, поэтому сначала обновите ее.

Сказав, что, в Parameters for the sqlnet.ora File на странице релиза 12с Oracle вы можете прочитать:

Цель

Чтобы установить минимальный протокол аутентификации разрешенную для клиентов, и когда сервер действует как клиент, например, подключение по ссылке базы данных при подключении к экземплярам Oracle Database.

Замечания по использованию

Термин VERSION во имя параметра относится к версии протокола аутентификации, а не базы данных Oracle выпуска.

Если версия не соответствует или превышает значение, заданное этим параметром , то аутентификация завершается с ошибкой ORA-28040: Отсутствует соответствующая ошибка протокола аутентификации .

по умолчанию для этого свойства 11.

Допустимые значения 8,10,11,12 и 12а.

Рекомендованное значение - 12. Попробуйте это.

Кроме того, есть полезное и интересное решение Database Administrators Stack Exchange

+0

Спасибо, что вы отвечаете, г-н Абарисон. Согласно сказанному, я заменил существующий jar на ojdbc7.jar, а также обновил файл sqlnet.ora, чтобы использовать «SQLNET.ALLOWED_LOGON_VERSION = 12». Был изменен файл sqlnet.ora, расположенный в «product \ 11.2.0 \ client_1 \ network \ admin». Однако я все еще сталкиваюсь с этой проблемой. вы можете мне помочь в этом отношении? – Deepan

2

драйверы JDBC имеет и версию Java и версию Oracle. Версии обычно коррелируют, но возможно, что ojdbc14.jar поддерживает более позднюю версию Oracle, чем ojdbc6.jar. Убедитесь, что вы используете последнюю версию ojdbc6.jar.

Выполнить эту команду, чтобы увидеть, какая версия Oracle драйвер был построен для:

>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 

Для изменения SQLNET.ORA, чтобы быть в безопасности, вы должны перезагрузить оба слушателя и базы данных.Это звучит необычно, но есть некоторые параметры, которые require restarting the database.

Также убедитесь, что вы изменяете все соответствующие файлы SQLNET.ORA. Если база данных Oracle дома отличается от дома Oracle слушателя, вы должны изменить оба.

0

Вы должны использовать последний тонкий драйвер JDBC (12.1.0.2) и JDK8. В этой конфигурации ваш драйвер будет поддерживать последнюю версию верификатора пароля базы данных, и ваша проблема должна быть решена.

1
ORA-28040: No matching authentication protocol 

Я столкнулся с аналогичной проблемой при попытке подключить

32-разрядный Oracle 11g Client к 64-битным Oracle 12c сервер

Затем я приступил добавить следующее к sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8 

я тогда испытал следующее сообщение об ошибке

ORA-01017: invalid username/password: logon denied 

Добавление следующих Клиенту SQLNET.ORA, а также сервер, я был в состоянии соединить старую версию жаба и PL/SQL для новый сервер 12c.

SQLNET.AUTHENTICATION_SERVICES = (NONE) 
Смежные вопросы