Я пытаюсь подключить свой проект Grails к базе данных Oracle ( Oracle 12c ) в системе Windows (8). Однако всякий раз, когда я запускаю свое приложение, я получаю следующее исключение:
Caused by: org.apache.commons.dbcp.SQLNestedException:
Cannot create PoolableConnectionFactory (ORA-28040:
No matching authentication protocol)
Caused by:
java.sql.SQLException: ORA-28040:
No matching authentication protocol
Согласно интернет-предложению, я также попытался отредактировать свой *.ora
файл, но он не работает.
Я добавил в sqlnet.ora
файл следующий фрагмент :
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Здесь я попытался назначить (10,11,12), но ни один из них не работает.
Может ли кто-нибудь помочь мне с этим?
Ответы:
Я удалил ojdbc14.jar файл и использовать ojdbc6.jar вместо и он работал для меня
источник
oracle.jdbc.thinLogonCapability"="o3"
что вам больше не нужно делать против oracle 12c. Надеюсь, это поможет кому-то другому,Вот текст, который я нашел на бирже экспертов :
источник
Я решил эту проблему, используя ojdbc8.jar. Oracle 12c совместим с ojdbc8.jar
источник
За исключением добавления в sqlnet.ora следующего
Если вы получаете сообщение об ошибке «ORA-01017: неверное имя пользователя / пароль; вход в систему запрещен», вам необходимо повторно создать свой пароль.
источник
За исключением добавления следующего в sqlnet.ora
Я также добавил следующее к клиенту и серверу, что решило мою проблему
Также см. Сообщение ORA-28040: Нет подходящего протокола аутентификации.
источник
Я использовал eclipse, и после того, как я попробовал все другие ответы, у меня это не сработало. В конце концов, у меня сработало перемещение на
ojdb7.jar
вершину Пути сборки. Это происходит, когда несколько банок имеют конфликтующие одинаковые классы.источник
Добавление
это идеальное решение для каталога sql.ora .. \ product \ 12.1.0 \ dbhome_1 \ NETWORK \ ADMIN
источник
Очень старый вопрос, но он дает дополнительную информацию, которая может помочь кому-то другому. Я также столкнулся с той же ошибкой, и я использовал ojdbc14.jar с 12.1.0.2 Oracle Database. На официальной веб-странице Oracle указана информация о том, какая версия поддерживает какие драйверы базы данных. Вот ссылка, и похоже, что для Oracle 12c и Java 7 или 8 правильная версия - ojdbc7.jar.
В ojdbc6.jar используется версия 11.2.0.4.
источник
Моя начальная ошибка: ORA-28040: нет исключения соответствующего протокола аутентификации.
Моя версия БД - 12.2 (Solaris), а версия клиента - 11.2 (Windows). Я добавил ниже как в серверный, так и в клиентский sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
при подключении у меня недействительное имя пользователя и пароль, поэтому я воссоздал пароль (тот же пароль) в базе данных, что решило мою проблему.
источник
В то время как в большинстве случаев решением будет замена jar-файла драйвера ojdbc, в моем случае все было иначе.
Если вы уверены, что используете правильный драйвер ojdbc. Дважды проверьте, действительно ли вы подключаетесь к базе данных, о которой думаете. В моем случае конфигурация jdbc (в Tomcat / conf) указывала на другую базу данных с другой версией Oracle.
источник
просто установите ojdbc-full, который содержит версию 12.1.0.1.
источник