Ora-28040: нет исключения соответствующего протокола аутентификации

1.5 Использовать под Windowsoerrкоманда

Поскольку среда клиента12c Linux, а у меня нет12cизLinuxОкружающая среда, установка более хлопотная, просто установите одинWindowsВерсия. Результат выполненияoerr ora Об ошибке сообщалось, когда:

C:\Users\xiaomaimiao>oerr ora 10041

oerr: Cannot access the message file E:\app\oracle\product\12.1.0\dbhome_1\rdbms\mesg\oraus.msg

No such file or directory

C:\Users\xiaomaimiao>oerr ora 01555

oerr: Cannot access the message file E:\app\oracle\product\12.1.0\dbhome_1\rdbms\mesg\oraus.msg

No such file or directory

После просмотраФайл с ошибкой (E: \ app \ oracle \ product \ 12.1.0 \ dbhome_1 \ rdbms \ mesg \ oraus.msg) действительно нет, и любой*.msgФайлы не существуют, То с 12вLinuxСледующий связанный$ORACLE_HOME/rdbms/mesg/*.msgФайлы копируются вWindowsВ окружающей среде:

/u02/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg

-rw-r—r— 1 oracle oinstall    4070 Jul 25  2008 amduus.msg

-rw-r—r— 1 oracle oinstall    6298 Apr 14  2011 asmcmdus.msg

-rw-r—r— 1 oracle oinstall    5886 Aug  3  2007 dbvus.msg

-rw-r—r— 1 oracle oinstall   23309 Jan 28  2010 dgmus.msg

-rw-r—r— 1 oracle oinstall  175881 May 11  2011 diaus.msg

-rw-r—r— 1 oracle oinstall   49483 Jan 28  2010 expus.msg

-rw-r—r— 1 oracle oinstall   15148 Nov  8  2009 gimus.msg

-rw-r—r— 1 oracle oinstall   47609 Feb 18  2009 impus.msg

-rw-r—r— 1 oracle oinstall    3585 Nov  3  2009 kfedus.msg

-rw-r—r— 1 oracle oinstall    3457 Nov  6  2008 kfodus.msg

-rw-r—r— 1 oracle oinstall    1792 Mar  1  2009 kfsgus.msg

-rw-r—r— 1 oracle oinstall   26775 Nov  1  1999 kgpus.msg

-rw-r—r— 1 oracle oinstall    3113 Sep  3  1997 kopus.msg

-rw-r—r— 1 oracle oinstall   72528 Sep 17  2011 kupus.msg

-rw-r—r— 1 oracle oinstall    4651 Sep  3  1997 lcdus.msg

-rw-r—r— 1 oracle oinstall   22043 Nov 27  2006 nidus.msg

-rw-r—r— 1 oracle oinstall  129827 May  5  2011 ocius.msg

-rw-r—r— 1 oracle oinstall     734 Mar  8  2010 opwus.msg

-rw-r—r— 1 oracle oinstall 4922454 Sep 17  2011 oraus.msg

-rw-r—r— 1 oracle oinstall  178311 Aug 25  2009 qsmus.msg

-rw-r—r— 1 oracle oinstall  391272 Sep 17  2011 rmanus.msg

-rw-r—r— 1 oracle oinstall   40078 Jul 30  2001 sbtus.msg

-rw-r—r— 1 oracle oinstall  123863 May 22  2010 smgus.msg

-rw-r—r— 1 oracle oinstall   20433 Jan 13  2010 udeus.msg

-rw-r—r— 1 oracle oinstall   20572 Jan 13  2010 udius.msg

-rw-r—r— 1 oracle oinstall  143025 Jul 27  2009 ulus.msg

Затем выполнитеOKВверх.

C:\Users\xiaomaimiao>oerr ora 01555

01555, 00000, «snapshot too old: rollback segment number %s with name \»%s\» too small»

// *Cause: rollback records needed by a reader for consistent read are

//         overwritten by other writers

// *Action: If in Automatic Undo Management mode, increase undo_retention

//          setting. Otherwise, use larger rollback segments

Эта статья перенесена из блога lhrbest 51CTO, исходная ссылка: http://blog.51cto.com/lhrbest/1885958, Пожалуйста, свяжитесь с первоначальным автором, если вам нужно перепечатать

1.4 ORA-28040Моделирование отказов

Саженцы пшеницы имеют7、8、9、10、11、12cБаза данных, так что, кстати, симулируйте эту ошибку.

Сервер12c, клиент9i, Пробуем подключиться на клиенте12cБаза данных:

Microsoft Windows

(c) 2015 Microsoft Corporation. All rights reserved.

D:\Users\xiaomaimiao>set ORACLE_HOME=D:\Program_files\u01\app\oracle\product\ora92

D:\Users\xiaomaimiao>set ora

ORACLE10G=D:\Program files\app\oracle\product\10.2.0\db_1

ORACLE11G=D:\Program_files\u01\app\oracle\product\11.2.0.1\dbhome_1

ORACLE8I=D:\Program files\app\oracle\product\ora8i

ORACLE_HOME=D:\Program_files\u01\app\oracle\product\ora92

D:\Users\xiaomaimiao>cd %ORACLE_HOME%/bin

D:\Program_files\u01\app\oracle\product\ora92\bin>sqlplus -v

SQL*Plus: Release 9.2.0.1.0 — Production

D:\Program_files\u01\app\oracle\product\ora92\bin>tnsping ora12c

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 — Production on 19-DEC-2016 17:44:59

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:

D:\Program_files\u01\app\oracle\product\ora92\network\admin\sqlnet.ora

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.128)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = lhrdb12c)))

OK (10 msec)

SQL*Plus: Release 9.2.0.1.0 — Production on Mon Dec 19 17:45:07 2016

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

ERROR:

ORA-28040: No matching authentication protocol

Enter user-name:

Вы можете увидеть газетуORA-28040: No matching authentication protocolошибка.

мывНа стороне сервера$ORACLE_HOME/network/admin/sqlnet.oraДобавьте следующую строку:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

Попробуйте подключиться еще раз:

SQL*Plus: Release 9.2.0.1.0 — Production on Mon Dec 19 17:51:54 2016

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 — 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

Видно, что подключено нормально.

Если сервер$ORACLE_HOME/network/admin/sqlnet.oraSQLNET.ALLOWED_LOGON_VERSION_SERVER = 8 иSQLNET.ALLOWED_LOGON_VERSION_CLIENT=8Закомментируйте и замените наSQLNET.ALLOWED_LOGON_VERSION=8,следующим образом:

SQLNET.ALLOWED_LOGON_VERSION=8

# SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

# SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

Попробуйте подключиться к базе данных:

SQL*Plus: Release 9.2.0.1.0 — Production on Mon Dec 19 17:56:29 2016

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 — 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

Вы можете подключиться в обычном режиме, но при просмотре журнала аварийных сигналов отображается следующий вывод:Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter. Более того, каждый раз, когда подключается база данных, выводится строка данных, что согласуется с проблемой, которую мы анализировали ранее.

11 ответов

Лучший ответ

Я удалил файл ojdbc14.jar и использовал вместо него ojdbc6.jar , и это сработало для меня

155

doelleri
7 Июл 2018 в 16:37

Вот текст, который я нашел на экспертном обмене:

58

zb226
18 Апр 2018 в 14:12

Это за исключением добавления следующего в sqlnet.ora

Если вы получаете сообщение об ошибке «ORA-01017: неверное имя пользователя / пароль; вход в систему запрещен», вам необходимо заново создать свой пароль.

8

CodeArt
1 Мар 2019 в 08:45

Я решил эту проблему, используя ojdbc8.jar. Oracle 12c совместим с ojdbc8.jar

6

Shardendu
22 Июн 2018 в 05:14

Я использовал eclipse, и после того, как я попробовал все другие ответы, у меня это не сработало. В конце концов, у меня сработало перемещение на вершину Пути сборки. Это происходит, когда несколько банок имеют конфликтующие одинаковые классы.

4

Sandesh Gupta
14 Май 2018 в 09:56

За исключением добавления следующего в sqlnet.ora

Я также добавил следующее как к клиенту, так и к серверу, что решило мою проблему

Также см. Сообщение

3

Community
23 Май 2017 в 11:54

Добавление

Это идеальное решение для каталога sql.ora .. \ product \ 12.1.0 \ dbhome_1 \ NETWORK \ ADMIN

1

Birhan Nega
4 Авг 2017 в 13:43

Очень старый вопрос, но он содержит дополнительную информацию, которая может помочь кому-то другому. Я также столкнулся с такой же ошибкой, и я использовал ojdbc14.jar с 12.1.0.2 Oracle Database. На официальной веб-странице Oracle указана информация о том, какая версия поддерживает какие драйверы базы данных. Вот ссылка, и похоже, что с Oracle 12c и Java 7 или 8 правильная версия — ojdbc7.jar.

В ojdbc6.jar используется версия 11.2.0.4.

1

Dharman
31 Июл 2020 в 17:09

Моя начальная ошибка: ORA-28040: нет исключения соответствующего протокола аутентификации.

Моя версия БД — 12.2 (Solaris), а версия клиента — 11.2 (Windows). Я добавил ниже как в серверный, так и в клиентский sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

При подключении у меня неверное имя пользователя и пароль, поэтому я воссоздал пароль (тот же пароль) в базе данных, что решило мою проблему.

Arumugaraj Kuthalingam
18 Дек 2019 в 04:44

Хотя в большинстве случаев решением будет замена jar-файла драйвера ojdbc, в моем случае все было иначе.

Если вы уверены, что используете правильный драйвер ojdbc. Дважды проверьте, действительно ли вы подключаетесь к базе данных, о которой думаете. В моем случае конфигурация jdbc (в Tomcat / conf) указывала на другую базу данных с другой версией Oracle.

user435421
5 Май 2020 в 14:17

Просто установите ojdbc-full, который содержит выпуск 12.1.0.1.

-1

Ali Mhamad Slim
20 Ноя 2018 в 21:57

Во-вторых, решить

Ищете банку

Сначала найдите банку JDBC Oracle, потому что я установил Oracle локально, поэтому я могу найти локальный каталог установки.

3. Выполните команды в CMD

Откройте CMD, выполните команду:

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=D:\apache-maven-3.5.0\lib\ojdbc6.jar

Примечание. Вышеупомянутая команда красная, вам необходимо изменить свой собственный каталог установки Maven в соответствии с вашей собственной версией OJBC.

Запрос вашей версии установки Oracle, просмотр из локального каталога установки

После установки:

8 ответов

Лучший ответ

Недавно у меня была такая же ошибка с двумя разными приложениями:

  1. приложение Java 7 на Tomcat 7 с использованием ojdbc6.jar с базой данных Oracle 12c.
  2. устаревшее приложение ASP с базой данных Oracle 12 c.

Второе решение, упомянутое в тот же пост, на который вы ссылались, сработал для нас.

Мы работали с нашими администраторами баз данных, чтобы установить указанную выше опцию в sqlnet.ora на сервере базы данных. Это решило нашу проблему. Надеюсь, это кому-то поможет.

4

Community
23 Май 2017 в 11:47

У нас была эта ошибка, когда мы перешли с 11g на 12c, я могу получить правильный ответ через tnsping «servername» (это первый шаг, который нам нужно проверить с помощью cmd). После этого мы понимаем, что сервер базы данных может обрабатывать только 64-битный запрос (в моем случае я использовал WinSQL, и он всегда проверял 32-битный). Итак, чтобы исправить это, попросите вашего администратора запустить сервер для 32-битного запроса, или вы можете перейти к разработчику SQL, который работает для меня.

Jigneshkumar Chauhan
18 Фев 2020 в 06:20

В моем Oracle я не смог найти файл , поэтому мне пришлось создать его с помощью команды:

И я добавил следующее:

Поэтому мне пришлось остановиться и запустить слушателя:

Наконец, я перезапускаю базу данных.

marc_s
27 Ноя 2019 в 19:47

Я получал ORA-28040 в Sqldeveloper (версия 1.5.5) для всех подключений. Я установил SQLNET.ALLOWED_LOGON_VERSION = 8, но ошибка не исчезла. Затем я включил «Использовать драйвер OCI / Thick» в меню «Инструменты-> Настройки-> База данных-> Дополнительные параметры». Это сработало.

kmxr
10 Июл 2019 в 22:24

Если вы переносите свое приложение на ojdbc6, одной из возможных причин может быть то, что ваши старые классы (совместимые со старой версией ojdbc) могут не получать класс OracleTypes . Самый простой способ — это изменить оператор импорта из import oracle.jdbc.driver.OracleTypes; чтобы импортировать oracle.jdbc.OracleTypes; из классов, в которых возникает ошибка.

Sanket03
8 Мар 2016 в 14:17

У меня возникла проблема с подключением к БД после перехода на ORACLE 12c. Ошибка была: java.sql.SQLException: ORA-28040: Нет подходящего протокола аутентификации. После установки этого параметра SQLNET.ALLOWED_LOGON_VERSION = 8 проблема была решена.

Большое спасибо

Dusica
25 Дек 2015 в 10:46

После перехода с на В моем случае в каталоге lib были как , так и . После удаления старого файла OJDBC14.jar у меня все заработало.

2

v8-E
14 Мар 2018 в 07:42

Я столкнулся с той же ошибкой.

Шаг 1:

Шаг 2: измените

Будет работать!

3

v8-E
14 Мар 2018 в 09:29

Как я могу избавиться от Unable to access jarfile error на Windows 10?

  1. Добавить самую последнюю версию Java в Windows
  2. Выберите Java в качестве программы по умолчанию для файлов JAR
  3. Выберите «Показать скрытые файлы, папки и диски».
  4. Откройте программное обеспечение Jarfix

1. Добавьте самую последнюю версию Java в Windows

Сначала убедитесь, что у вас установлена ​​самая последняя версия Java. Самая последняя версия на данный момент — Java 8 161. Таким образом вы можете обновить Java в Windows 10.

  • Сначала нажмите сочетание клавиш Win + R, чтобы открыть команду «Выполнить».
  • Введите appwiz.cpl в текстовом поле «Выполнить» и нажмите кнопку « ОК» .
  • Введите «Java» в поле поиска программ поиска, как показано на снимке ниже.
  • Затем выберите Java, чтобы проверить, какая у вас версия. Версия отображается в нижней части окна и отображается в столбце Версия.
  • Если у вас не установлена ​​самая последняя версия Java, нажмите кнопку « Удалить» .
  • Нажмите кнопку Да , чтобы подтвердить.
  • Откройте эту веб-страницу в вашем браузере.
  • Нажмите кнопку Free Java Download , чтобы сохранить мастер установки JRE.
  • После этого может открыться диалоговое окно, из которого можно нажать кнопку « Выполнить» , чтобы запустить установщик JRE. Если нет, откройте папку, в которой вы сохранили мастер установки, щелкните правой кнопкой мыши мастер установки Java и выберите Запуск от имени администратора .
  • Нажмите кнопку Install в окне мастера установки, чтобы установить Java.

Ничего не происходит, когда вы нажимаете на Запуск от имени администратора? Не волнуйтесь, у нас есть правильное решение для вас.

2. Выберите Java в качестве программы по умолчанию для файлов JAR.

Сообщения об ошибках Jarfile обычно появляются, когда Java не настроена в качестве программного обеспечения по умолчанию для файла JAR . Вместо этого утилита архивирования может быть связанной программой по умолчанию для JAR.

Таким образом, выбор Java в качестве программы по умолчанию для файла JAR может запустить его программу. Вот как вы можете настроить программное обеспечение по умолчанию для формата JAR.

  • Откройте проводник и папку, в которой находится файл JAR.
  • Щелкните правой кнопкой мыши файл JAR и выберите « Открыть с помощью» > « Выбрать программу по умолчанию» > « Выбрать другое приложение», чтобы открыть окно на снимке непосредственно ниже.
  • Выберите Java, если он указан среди программ по умолчанию.
  • Если Java отсутствует в списке программ, выберите « Искать другое приложение на этом ПК» .
  • Затем перейдите в папку Java, выберите « Java» и нажмите кнопку « Открыть» .
  • Нажмите кнопку ОК в окне Открыть с помощью.
  • Нажмите на JAR, чтобы запустить его программу.

Не можете изменить стандартные приложения в Windows 10? Взгляните на это руководство и научитесь делать это с легкостью.

3. Выберите параметр Показать скрытые файлы, папки и диски.

  • Сообщение об ошибке « невозможно получить доступ к jarfile » также может появиться, если не выбран параметр « Показать скрытые файлы, папки и диски» . Чтобы выбрать эту опцию, откройте проводник.
  • Откройте вкладку «Вид» и нажмите кнопку « Параметры» , чтобы открыть окно, расположенное ниже.

Выберите вкладку Вид, показанный непосредственно ниже.

  • Выберите параметр « Показывать скрытые файлы, папки и файлы и папки дисков» .
  • Нажмите кнопку Применить .
  • Нажмите кнопку ОК , чтобы закрыть окно.

4. Откройте программное обеспечение Jarfix

Jarfix — это легковесная программа, предназначенная для исправления не запускающихся программ Java. Программа исправляет ассоциации типов файлов JAR.

Нажмите jarfix.exe на этой веб-странице, чтобы сохранить программное обеспечение в папке. Затем вы можете щелкнуть jarfix.exe, чтобы открыть окно ниже и исправить сопоставление JAR. Это все, что нужно сделать, и в окне Jarfix больше нет вариантов для выбора.

Это несколько решений, которые могут исправить ошибку « невозможность доступа к jarfile » и запустить программное обеспечение JAR.

Если у вас есть другие вопросы, не стесняйтесь оставлять их в разделе комментариев ниже.

СВЯЗАННЫЕ ИСТОРИИ, ЧТОБЫ ПРОВЕРИТЬ:

  • JAR-файлы не открываются в Windows 10
  • Как установить .Jar файлы на Windows 10
  • Как открыть файлы EMZ на ПК с Windows 10

ORA-28040: No matching authentication protocol

When I tried to connect to a 12.1 database from an Oracle client 9.2, it failed with ORA-28040: No matching authentication protocol.

I knew there could be some interoperability problems between versions, especially when the version gap is big like this case, Oracle 9i client connect to 12c or 18c database. But I didn’t expect ORA-28040 to show up.

For those users who want to .

Same error may occur while you’re using old Oracle JDBC drivers, say ojdbc14.jar or below, to connect a 12c or 18c database. I’ll .

Let’s see the content of ORA-28040.

Server or Clients?

According to the above explanation about ORA-28040, we should provide compatible authentication protocol for either client or server to accept. But now the question is: Should we change server configuration or just upgrade Oracle clients?

In fact, it depends on what privileges you have. For database administrators, you can change the server configuration to solve all users’ problems at once. As for developers, fixing or upgrading Oracle clients is the only choice you can do, so as to match authenticated protocol of Oracle 12c databases.

For better understanding different applicable situations, I will split the solutions against ORA-28040 into two main parts in this post, the first part is for server side, the other one is for client side.

Установите локальный пакет Jar на склад maven

http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>style=»clear:both;»>

Во время разработки может возникнуть ситуация, когда пакет jar не может быть загружен через pom.xml. В этом случае мы можем вручную установить пакет jar локально на локальный склад, чтобы, если вы используете его в следующий раз, вы не необходимо снова загрузить его из Интернета. Возьмем, к примеру, пакет драйверов ojdbc6.jar:

 1     mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.1.0 -Dpackaging=jar -Dfile=D:\ojdbc14.jar    
 2     mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=D:\ojdbc6.jar   
 3     mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1.0 -Dpackaging=jar -Dfile=D:\ojdbc7.jar       
 4     <dependencies>  
 5         <!-- oracle jdbc driver -->    
 6         <dependency>      
 7             <groupId>com.oracle</groupId>      
 8             <artifactId>ojdbc14</artifactId>      
 9             <version>10.2.0.1.0</version>  
10         </dependency>  
11     </dependencies>  

1. Скопируйте локальный jar-пакет odjbc6.jar во временное расположение. Например, я скопировал его сюда, в D: \ ojdbc.jar.

2. Откройте командную строку cmd от имени администратора и введите следующую команду:

1 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=D:\ojdbc6.jar

Установка прошла успешно, а затем настройте соответствующую информацию о пакете jar в файле pom.xml, и maven поможет нам загрузить в наш локально установленный файл.

1 <dependencies>  
2     <!-- oracle jdbc driver -->    
3     <dependency>      
4         <groupId>com.oracle</groupId>      
5         <artifactId>ojdbc14</artifactId>      
6         <version>10.2.0.1.0</version>  
7     </dependency>  
8 </dependencies> 

Перепечатано по адресу: https://www.cnblogs.com/xiaohu1218/p/9209277.html

Интеллектуальная рекомендация

1. Для реальных сигналов (для понимания): A (ω) является соотношением амплитуды выходного сигнала и амплитуды входного сигнала, называемого частотой амплитуды. Φ (ω) — это разница межд…

Один. вести Многие люди задавали некоторые вопросы о создании проекта Flex + LCDS (FDS) в сообщениях и группах. Из-за операции ее трудно четко объяснить, поэтому я написал простой учебник (я обещал эт…

package com.example.phonehttp; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.widget.ScrollView; import android.widget.TextView; public class MainActi…

Он предназначен для реализации подкласса того же родительского класса с родительским классом. Полиморфизм Один и тот же ссылочный тип использует разные экземпляры для выполнения разных операций; Идея …

тема: Объедините два упорядоченных слоя в новый заказанный список и возврат. Новый список состоит из всех узлов двух связанных списков, данных сплавным. Пример: Анализ: два связанных списка состоит в …

Вам также может понравиться

D. Самая ценная строка Пример ввода 2 2 aa aaa 2 b c Образец вывода aaa c На самом деле, будучи задетым этим вопросом, вы должны быть осторожны. После инвертирования строки, если две строки имеют один…

Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surro…

calc () может быть очень незнакомым для всех, и трудно поверить, что calc () является частью CSS. Поскольку он выглядит как функция, почему он появляется в CSS, поскольку это функция? Этот момент такж…

Основываясь на дереве регрессии, сформированном CART, а также на предварительной и последующей обрезке дерева, код выглядит следующим образом:…

Откат Обновление в режиме онлайн с версии Centos (CentOS Linux версии 7.3.1611 (Core) до CentOS Linux версии 7.5.1804 (Core)) # ошибка соединения yum-ssh после обновления yexpected key exchange group …

1.2 Предисловие

1.2.1 Руководство и примечания

Уважаемые энтузиасты технологий, прочитав эту статью, вы сможете овладеть следующими навыками и получить другие знания, которых вы не знаете.~O(∩_∩)O~:

① Часто появляются в журнале тревогUsing deprecated SQLNET.ALLOWED_LOGON_VERSION parameter、ORA-28040: Ошибка подходящего протокола аутентификации,9iКлиент подключается к12cРешение высокой версии

② Использовать под Windowsoerrкоманда

Tips:

① Эта статья находится вitpub(http://blog.itpub.net/26736162), Blog Garden(http://www.cnblogs.com/lhrbest)И публичный аккаунт WeChat (xiaomaimiaolhr)наЕсть одновременные обновления。

② Весь код, использованный в статье、связанное программное обеспечение、Релевантная информацияИ pdf-версия этой статьиДля скачивания перейдите на облачный диск саженцев пшеницы,Рассады пшеницыСмотрите адрес облачного диска:http://blog.itpub.net/26736162/viewspace-1624453/。

③ Если формат кода статьи на веб-странице нарушен,пожалуйстаскачатьpdfФорматированный документчитать。

④ вэта статьяBLOGв, Часть вывода кода обычно размещается в таблице по столбцам.

Пожалуйста, поправьте меня, если в этой статье есть ошибки или неточности.ITPUBОставьте сообщение илиQQДа, ваша критика — самая большая мотивация для моего письма.

ORA-28040: No matching authentication protocol 19c

If you get  ORA-28040 error When you connect to Oracle 19c database then change your sqlnet.ora file like below. Add these two lines to the sqlnet.ora

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

 ~]$ ps -ef | grep smon
oracle 25167 17807 0 11:56 pts/0 00:00:00 grep --color=auto smon
oracle 28385 1 0 10:31 ? 00:00:00 ora_smon_DEVECI19C
 ~]$
 ~]$
 ~]$ cd $ORACLE_HOME
 install]$ cd network/admin/
 admin]$


 admin]$ cat sqlnet.ora
# sqlnet.ora Network Configuration File: /oradata/install/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)


SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8


SQLNET.ORA

If you change sqlnet.ora file which is under the $ORACLE_HOME/network/admin then reload your listener like below. And try to connect again.

 admin]$ lsnrctl reload

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 01-MAR-2019 11:57:26

Copyright (c) 1991, 2018, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
The command completed successfully
 admin]$
 admin]$
 admin]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 01-MAR-2019 11:57:30

Copyright (c) 1991, 2018, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 01-MAR-2019 11:46:57
Uptime 0 days 0 hr. 10 min. 32 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/MehmetSalih/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MehmetSalih.DeveciDomain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=MehmetSalih.DeveciDomain)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/DEVECI19C/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "DEVECI19C.DeveciDomain" has 1 instance(s).
Instance "DEVECI19C", status READY, has 1 handler(s) for this service...
Service "DEVECI19CXDB.DeveciDomain" has 1 instance(s).
Instance "DEVECI19C", status READY, has 1 handler(s) for this service...
The command completed successfully
 admin]$

Server Side Solutions to ORA-28040

If you have the right to change the network configuration on the server side, then you have chances to solve ORA-28040 for all users in minutes. As a matter of fact, most developers do not have the right.

Scenario 1: New Database is Acting as a Server

Oracle 9i Clients to 12c Server

When your users refused to upgrade their old clients to connect a higher version of database, say 12c, ORA-28040 would become a frequent and typical error in your daily job.

Said clients could be an Oracle 9i server which acts as a client to connect to an Oracle 12c database server like below. ORA-28040 was thrown by sqlplus as usual:

ORA-28040 SQL*Plus Connect from 9i to 12c

After searching for some other solutions, I found an is very helpful to explain ORA-28040. In which, it explains in what situation we should use SQLNET.ALLOWED_LOGON_VERSION_SERVER to be compatible with both ends of authentication protocol.

Here is my solution to ORA-28040: Adding SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 to sqlnet.ora in 12.1 database server (not the old client).

Please note that, you should use sqlnet.ora at database-level, not grid-level if you’re in a RAC environment according to MOS Doc ID 562589.1. And I have confirmed that.

As for taking effect, you don’t have to restart listener, the new incoming connections will apply the new values. Just make sure the setting is correct.

This time, our connections have no ORA-28040 shown up. Moreover, we can migrate data from 9i to 12c over a database link.

Scenario 2: New Database is Acting as a Client

Oracle 12c Clients to 9i Server

From the opposite direction, if you want to connect from a 12.1 to a 9.2 database, say database link connections, you should also set: in sqlnet.ora to prevent unmatched authenticated protocol error ORA-28040.

For your reference, I quote some text about SQLNET.ALLOWED_LOGON_VERSION_CLIENT below. Same reason here for ORA-28040, it’s a compatible issue:

Further reading: DB Link, How and Why

The connections from 9i to 12c can be worked around by the solutions provided in this post. In contrast, 12c to 9i usually fails due to ORA-03134, not ORA-28040.

I talked about the solution to ORA-03134 in another post: How to Resolve ORA-03134: Connections to this server version are no longer supported.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: