Ora 06512 ошибка oracle

Обновлено: 05.07.2024

Добрый день. В наличии есть бэкап схемы Oracle, выполненных с помощью datapump. Использовал команду expdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log . Каталог TEST_DIR создан. Дамп создан. В логе expdpSCOTT.log ошибок нет.
На новой базе была создана схема SCOTT , каталог TEST_DIR .
Выполнил команду impdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR dumpfile=SCOTT.dmp logfile=impdpSCOTT.log . Получил простыню ошибок.

Исходная база: Oracle 11.2.0.4
Целевая база: 19с


Пробовал много чего. Могу привести, но, думаю, у вас это вызовет только недоумение.

Exchange1c "не хочет" загружать offers.xml при использовании ручного импорта
Добрый ночер. Установил Opencart 1.5.5.1 Повесил на него модуль "Обмен данными с 1C v8.x".

Ошибка при попытке импорта DLL
public static extern int DwmExtendFramelntoClientArea(IntPtr hwnd , ref Margins pMarlnset); .


Ошибка 500 при попытке импорта
Здравствуйте, Я решил попробовать программу CSV Improved v. 4.5.5 (free). У меня на локалке стоит.

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

Запуск утилит в операционной системе Windows запускается из командной строки. В случае если системный каталог bin СУБД Oracle не добавлен в переменную среды Path, то запускать утилиты нужно из данного каталога, т.е. предварительно перейдя в него (например, с помощью команды cd). orion2014, увы, но утилита запускается, а то, про что вы говорите - это если бы мне написало, что impdp не является командой. По идее нужно смотреть доку (Database Utilites). Лично я не использовал expdp/impdp для миграции между версиями. Да и exp/imp для этих целей использовал давно. Так вот для них, если мне не изменяет память, было следующее правило. Для экспорта использовалась утилита версии = версии исходной БД. Для импорта нужно было использовать версию, минимальную из 2 (откуда и куда). Не знаю, действует ли это для impdp, это надо смотреть доку. Grossmeister, хм.. Почитаю доку.. А то я зашёл в тупик, и даже не знал, что ещё почитать. К сожалению, чтение документации мне не помогло. Джобы просто нет. Возможнокто-нибудь подскажет, где посмотреть список всех имеющихся джоб? И, если я найду эту джобу на другом сервере, как её перенести на свой сервер?

Ошибка при использовании ADODB.CONNECTION при работе с dbf-файлом
Добрый день! Написала макрос с использованием adodb.connection. макрос удаляет строки из файла dbf.


Ошибка при получении данных из БД при использовании MVC framework 4.0
// HomeControlers.cs using System; using System.Collections.Generic; using System.Linq; using.

При использовании кода в модуле ошибка при открытии файла
есть такой простенький код, которій отлично работает в скрипте *.pl use Cwd; my $cwd =.

Ошибка при задаче значения флажку при использовании контрола?!
У меня в форме 6 флажков, так вот для упрощения кода я вставил контролы, когда написал первый раз у.


Ошибка при использовании openfilename: Нарушение прав доступа при записи по адресу
Здравствуйте, подскажите: При использовании кода (слева), после выбора файла, возникает ошибка.

Ошибка при сохранении данных в БД при использовании bindingnavigator
Добрый день. Подскажите, куда копать? Есть форма, где в зависимости от выбранного значения combobox.

Windows Server 2003 R2 с установленным на нём Oracle Client 10.2.0.4.
При запуске sqlplus от имени пользователя с администраторскими полномочиями коннект осуществляется без проблем. Но при попытке подключиться к базе от имени пользователя без администраторских полномочий появляется ошибка:

Вызвано это невозможностью создать global object пользователем без администраторских полномочий. Я решил проблему так:

Создал группу ora_dba (имя группы, в данном случае, значения не имеет); Ввёл в эту группу всех пользователей, которым нужно работать с Oracle Client; Пуск, Администрирование, Локальная политика безопасности; В списке слева находим и разворачиваем "Локальные политики"; В списке справа находим "Создание глобальных объектов" и открываем его двойным щелчком мыши; Щёлкаем на "Добавить пользователя или группу…", затем на "Типы объектов…", ставим галочку против "Группы" и нажимаем "Ок"; В поле "Введите имена выбираемых объектов" вводим имя группы в нотации server\group_name ( srv1\ora_dba ). Можно нажать на кнопку "Проверить имена";

Результат - ошибок нет, пользователь счастлив и может работать.

ORA-28759: сбой при открытии файла

Суть проблемы в том, что Oracle Wallet Manager (OWM) при редактировании wallets меняет разрешения на доступ к файлу. В результате файл становится доступным только пользователю, от которого был запущен OWM.

Решение:
Измените разрешения на доступ к файлу так, чтобы пользователь, от которого работает Oracle DB, имел доступ хотя бы на чтение.

ORA-12154: TNS:could not resolve the connect identifier specified

PL/SQL Developer и Windows x64.

sqlplus

При попытке подключиться с помощью sqlplus, используя Easy Connect, тоже можно получить ошибку:

Для решения убедитесь, что " $ORACLE_HOME/network/admin/sqlnet.ora " или вообще не содержит параметра " NAMES.DIRECTORY_PATH ", или данный параметр имеет одним из значений (или единственным значением) " EZCONNECT ":

Ошибка компиляции при установке Oracle Client

Первоначально пробуем выполнить:

Для Ubuntu 14.04 вероятно придётся пересоздать symlink:

и создать новый:

и снова пробуем выполнить:

SQL Developer, Oracle XE и ORA-12705 в Linux

При попытке настроить Jasper Reports Integration столкнулся с этой же ошибкой при настройке соединения Tomcat. Решается путём создания " $CATALINA_BASE/bin/setenv.sh " с добавлением в него следующих параметров запуска Java:

У меня содержимое файла выглядит так:

Проблемы с external job (sjsec 6a)

В какой-то момент стал получать ошибку:

Это происходило в Oracle, установленном на сервер под управлением Windows.
Решение — убедитесь и при необходимости запустите сервис OracleJobScheduler<SID>.
Где SID — SID вашего экземпляра БД.

ORA-01075 you are currently logged on

Нашёл решение здесь, но решил у себя продублировать. Итак, если при подключении к БД получаем что-то типа:

нужно выполнить следующие шаги:

подключаемся к системе под именем пользователя, от которого запущен Oracle;

SQLDeveloper из Oracle 11g (64 bit) на Windows (64 bit)

Как ни парадоксально, но это решается установкой java 32-bit и добавлением в файл " %ORACLE_HOME%\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf " строки, в которой с помощью SetJavaHome задан JAVA_HOME (путь к java), например так:

ORA-00845: MEMORY_TARGET not supported on this system

На Windows я с такой ошибкой пока не встречался, а на linux решение простое:

правим (или добавляем при остутствии) в " /etc/fstab " строку

Где:
size — размер больше или равен объёму выделяемой для всех экземпляров Oracle памяти. В нашем случае он равен 12Gb (size=12g).

должны получить что-то похожее на следующее:

ORA-12034: materialized view log on "SCHEMA"."MVIEW" younger than last refresh

Можно смотреть ноту 204127.1 на Metlink.
В некоторых случаях помогает:

Проблемы при повторной конфигурации Oracle XE.

Один из вариантов повторной конфигурации Oracle XE заключается в удалении " /etc/sysconfig/oracle-xe " (для Red Hat) и выполнении " /etc/init.d/oracle-xe configure ". Однако, если у вас имеется созданное вами табличное пространство в указанном вами файле данных, выполните обязательно бэкап этого табличного пространства. Указанный скрипт выполнит пересоздание DBID для известных ему файлов данных, но не тронет те, что вы создали. Таким образом, после старта системы вы не сможете ни получить доступ к вашим файлам, ни подключить их к БД, т.к. в них прописаны старые DBID. Будьте внимательнее.

ORA-01704: string literal too long

При работе с Oracle через JDBC, столкнулся с проблемой в виде ошибки "ORA-01704: string literal too long". Оказывается, в некоторых случаях (JDBC — один из них) нельзя просто взять и вставить строку длиной больше 4000 символов в поле таблицы. Даже если это поле типа CLOB. Т.е. не прокатывает строка вида:

Пересоздание сессии в удалённой БД (dblink)

Разработчики стали жаловаться, что, при обращении к объекту, размещённому в удалённой БД, через database link, появляется следующая ошибка:

создаем database link с тем же именем, но с подключением к любому другому серверу (про другую схему того же сервера сказать ничего не могу — не проверял); выполняем любой запрос к удалённой БД через созданный линк; создаём заново линк, но уже с нужными параметрами подключения.

В результате, на требуемом нам сервере будет создана новая сессия. Проблема была решена. Такой вот lifehack.

К сожалению, воспроизвести ситуацию уже невозможно, но, вероятно, могла помочь и следующая последовательность действий:

Certificate of the remote server does not match the target address.

Эта заметка относится к Oracle Database 12.2.
В wallet-файле есть необходимый сертификат, но при обращении к ресурсу получаем ошибку:

Ещё один широко известный в узких кругах ресурс:

ORA-27369: job of type EXECUTABLE failed with exit code: 274662

ORA-00392: log 1 of thread 1 is being cleared, operation not allowed

При открытии БД с resetlogs получаем ошибку:

Вероятно, первая команда " alter database open resetlogs " завершилась неудачно и в control-файле redo остались в статусе CLEARING/CLEARING_CURRENT:

Можно попробовать использовать следующие команды:

а затем уже повторить:

На metalink есть документ (Doc ID 1352133.1)

ORA-31640: unable to open dump file "FILENAME" for read

При выполнении импорта средствами Oracle DataPump столкнулся с этой ошибкой (видна в лог-файле). Дамп-файлы были размещены на NFS-разделе, который был смонтирован не совсем корректно. Подсмотрел здесь параметры, которые помогли решить проблему:

[EXPDP / IMPDP] ORA-06502, ARA-39077 Анализ ошибок и решение

Согласно предварительному анализу информации об ошибке, может быть, что значение последовательности превышает 6 цифр или сбой последовательности в компоненте DataPump. Обратитесь к Mos Document 1550344.1 Анализ, эта ошибка вызвана Oracle Bug 16473783, которая зафиксирована в Oracle 12.2, и если вы выполняете скрипт повторной установки компонента DataPump, могут вызвать другие проблемы.

1. Проверьте, увеличится ли значение последовательности

1. Просмотр последовательности, содержащей компонент DataPump

2. Просмотр значения двух последовательности

4. Просмотрите значение последовательности

Объяснение: Экспортные операции Значение последовательности в компонент DataPump увеличивается

2. Проверьте, превысит ли значение последовательности 6 цифр?

1. Реализуйте начальное значение по природу. Имя последовательности ` js
AQ $ _KUPC $ dataPump_CETAB_1_N, начальное значение 368, а теперь для установки начального значения 999999, приращение по значению: 999619 (999999-380)

SQL> Alter Sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N Increment By 999619;

SQL> Select AQ$_KUPC$DATAPUMP_QUETAB_1_N.NextVal From Dual;

SQL> Alter Sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N Increment By 7;

SQL> Select AQ$_KUPC$DATAPUMP_QUETAB_1_N.NextVal From Dual;

]$ expdp '/ as sysdba' directory=MY_DIR dumpfile=test.dmp logfile=test.log tables=test.T_TASKDONE

Export: Release 11.2.0.3.0 - Production on Thu Aug 7 19:11:36 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-31626: job does not exist

ORA-31638: cannot attach to job SYS_EXPORT_TABLE_01 for user SYS

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPV$FT_INT", line 428

ORA-39077: unable to subscribe agent KUPC$A_1_191136568928000 to queue "KUPC$C_1_20140807191136"

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPC$QUE_INT", line 250

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

SQL> drop sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N ;

SQL> create sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N minvalue 1 maxvalue 999999 start with 1 increment by 1 cache 20 cycle;

SQL> drop sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N;

SQL> create sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N minvalue 1 maxvalue 999999 start with 999997 increment by 1 cache 20 cycle;

SQL> select AQ$_KUPC$DATAPUMP_QUETAB_1_N.nextval from dual;

Export: Release 11.2.0.3.0 - Production on Fri Aug 8 00:56:10 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TABLE_01": "/ AS SYSDBA" directory=my_dir logfile=test01.log dumpfile=test02.dmp tables=test.T_BASEITEM

Estimate in progress using BLOCKS method.

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 6 MB

Processing object type TABLE_EXPORT/TABLE/TABLE

Processing object type TABLE_EXPORT/TABLE/COMMENT

Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/TRIGGER

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . exported "TEST"."T_BASEITEM" 4.470 MB 35322 rows

Master table "SYS"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

Dump file set for SYS.SYS_EXPORT_TABLE_01 is:

Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at 00:56:21

Export: Release 11.2.0.3.0 - Production on Fri Aug 8 00:56:30 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TABLE_01": "/ AS SYSDBA" directory=my_dir logfile=test01.log dumpfile=test03.dmp tables=test.T_BASEITEM

Estimate in progress using BLOCKS method.

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 6 MB

Processing object type TABLE_EXPORT/TABLE/TABLE

Processing object type TABLE_EXPORT/TABLE/COMMENT

Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/TRIGGER

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . exported "TEST"."T_BASEITEM" 4.470 MB 35322 rows

Master table "SYS"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

Dump file set for SYS.SYS_EXPORT_TABLE_01 is:

Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at 00:56:36

Export: Release 11.2.0.3.0 - Production on Fri Aug 8 00:56:44 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TABLE_01": "/ AS SYSDBA" directory=my_dir logfile=test01.log dumpfile=test04.dmp tables=test.T_BASEITEM

Estimate in progress using BLOCKS method.

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 6 MB

Processing object type TABLE_EXPORT/TABLE/TABLE

Processing object type TABLE_EXPORT/TABLE/COMMENT

Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/TRIGGER

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . exported "TEST"."T_BASEITEM" 4.470 MB 35322 rows

Master table "SYS"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

Dump file set for SYS.SYS_EXPORT_TABLE_01 is:

Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at 00:56:50

SQL> select AQ$_KUPC$DATAPUMP_QUETAB_1_N.nextval from dual;

SQL> drop sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N ;

SQL> create sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N minvalue 1 maxvalue 999999 start with 1 increment by 1 cache 20 cycle;

SOLUTION
To address the issue, use any of below alternatives:
o Apply interim Patch 16928674 for the generic platform if available for your Oracle version.

  • OR -
  1. As a workround, execute next scripts to recreate the datapump objects:

@$ORACLE_HOME/rdbms/admin/catdph.sql
@$ORACLE_HOME/rdbms/admin/prvtdtde.plb
@$ORACLE_HOME/rdbms/admin/catdpb.sql
@$ORACLE_HOME/rdbms/admin/dbmspump.sql
@$ORACLE_HOME/rdbms/admin/utlrp.sql

Please refer to
Note 16473783.8 - Bug 16473783 - expdp encounters ORA-39077 and ORA-31638 - withdrawn
Generally speaking, we can recreate the datapump objects in 11g by calling;

This is described in
Note 430221.1 - How To Reload Datapump Utility EXPDP/IMPDP

  • OR -
  1. As an alternative to a re-installation of datapump, which would need an instance shutdown/restart, you could recreate the queue table, e.g:

connect / as sysdba
exec dbms_aqadm.drop_queue_table(queue_table => 'SYS.KUPC$DATAPUMP_QUETAB', force => TRUE);
dbms_aqadm.create_queue_table(

Note that this will cause any running Data Pump jobs on the instance to fail with queue errors. However, they should be restartable.

@$ORACLE_HOME/rdbms/admin/catdph.sql
@$ORACLE_HOME/rdbms/admin/prvtdtde.plb
@$ORACLE_HOME/rdbms/admin/catdpb.sql
@$ORACLE_HOME/rdbms/admin/dbmspump.sql
@$ORACLE_HOME/rdbms/admin/utlrp.sql

connect / as sysdba
exec dbms_aqadm.drop_queue_table(queue_table => 'SYS.KUPC$DATAPUMP_QUETAB', force => TRUE);
dbms_aqadm.create_queue_table(

SQL> select AQ$_KUPC$DATAPUMP_QUETAB_1_N.nextval from dual;

SQL> Alter Sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N Increment By 999666;

SQL> select AQ$_KUPC$DATAPUMP_QUETAB_1_N.nextval from dual;

SQL> Alter Sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N Increment By 1;

Export: Release 11.2.0.3.0 - Production on Fri Aug 8 11:07:03 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-31626: job does not exist

ORA-31638: cannot attach to job SYS_EXPORT_TABLE_01 for user TEST

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPV$FT_INT", line 428

ORA-39077: unable to subscribe agent KUPC$A_1_110703612385000 to queue "KUPC$C_1_20140808110703"

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPC$QUE_INT", line 250

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Import: Release 11.2.0.3.0 - Production on Fri Aug 8 11:07:42 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-31626: job does not exist

ORA-31638: cannot attach to job SYS_IMPORT_TABLE_01 for user TEST

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPV$FT_INT", line 428

ORA-39077: unable to subscribe agent KUPC$A_1_110742848594000 to queue "KUPC$C_1_20140808110742"

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPC$QUE_INT", line 250

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Invoking OPatch 11.2.0.1.7

OPatch Version: 11.2.0.1.7

-rw-r--r-- 1 root root 32995358 Aug 8 11:17 p6880880_112000_Linux-x86-64.zip

OPatch Version: 11.2.0.3.5

Oracle Interim Patch Installer version 11.2.0.3.5

Copyright (c) 2013, Oracle Corporation. All rights reserved.

Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1

Central Inventory : /u01/app/oraInventory

OPatch version : 11.2.0.3.5

OUI version : 11.2.0.3.0

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

Oracle Interim Patch Installer version 11.2.0.3.5

Copyright (c) 2013, Oracle Corporation. All rights reserved.

Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1

Central Inventory : /u01/app/oraInventory

OPatch version : 11.2.0.3.5

OUI version : 11.2.0.3.0

Applying interim patch '16928674' to OH '/u01/app/oracle/product/11.2.0/dbhome_1'

Verifying environment and performing prerequisite checks.

All checks passed.

Provide your email address to be informed of security issues, install and

initiate Oracle Configuration Manager. Easier for you if you use your My

Oracle Support Email address/User Name.

Email address/User Name:

You have not provided an email address for notification of security issues.

Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: y

Backing up files.

Patching component oracle.rdbms.dbscripts, 11.2.0.3.0.

Verifying the update.

Patch 16928674 successfully applied

Oracle Interim Patch Installer version 11.2.0.3.5

Copyright (c) 2013, Oracle Corporation. All rights reserved.

Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1

Central Inventory : /u01/app/oraInventory

OPatch version : 11.2.0.3.5

OUI version : 11.2.0.3.0

Installed Top-level Products (1):

Oracle Database 11g 11.2.0.3.0

There are 1 products installed in this Oracle Home.

Interim patches (1) :

Patch 16928674 : applied on Fri Aug 08 11:28:51 CST 2014

Unique Patch ID: 17483843

Created on 2 Apr 2014, 04:20:57 hrs PST8PDT

etc files postinstall.sql README.txt

Package body created.

Package body created.

]$ expdp test/test directory=MY_DIR dumpfile=d3.dmp tables=T_TASKDONE

Export: Release 11.2.0.3.0 - Production on Fri Aug 8 11:34:14 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "TEST"."SYS_EXPORT_TABLE_01": test/ directory=MY_DIR dumpfile=d3.dmp tables=T_TASKDONE

Estimate in progress using BLOCKS method.

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 280 MB

Processing object type TABLE_EXPORT/TABLE/TABLE

Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . exported "TEST"."T_TASKDONE" 26.65 MB 233428 rows

Master table "TEST"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

Dump file set for TEST.SYS_EXPORT_TABLE_01 is:

Job "TEST"."SYS_EXPORT_TABLE_01" successfully completed at 11:34:27

]$ impdp test/test directory=MY_DIR dumpfile=d3.dmp tables=T_TASKDONE table_exists_action=replace

Import: Release 11.2.0.3.0 - Production on Fri Aug 8 11:41:55 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Master table "TEST"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded

Starting "TEST"."SYS_IMPORT_TABLE_01": test/ directory=MY_DIR dumpfile=d3.dmp tables=T_TASKDONE table_exists_action=replace

Processing object type TABLE_EXPORT/TABLE/TABLE

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

. . imported "TEST"."T_TASKDONE" 26.65 MB 233428 rows

Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Job "TEST"."SYS_IMPORT_TABLE_01" successfully completed at 11:42:20

Злоумышленник может использовать эту методику (двойные кавычки около параметров), чтобы обойти dbms_assert. Об этой уязвимости, и некоторых связанных ошибок безопасности, было сообщено компании Oracle в Апреле 2006 года.

image

Александр Корнбруст,

Используя специально сформированные параметры (в двойных кавычках) можно обойти проверку правильности пакета dbms_assert и внедрить SQL код. Уязвимость можно эксплуатировать в большинстве версий Oralce (8.1.7.4 – 10.2.0.2), исправление появилось только в июле 2006 года.

Для защиты пакетов Oracle PL/SQL от большого количества SQL инъекции, Oracle разработал новый пакет пол названием dbms_assert в Oracle 10g Release 2. Этот пакет был ретропортирован с Oracle Critical Patch Update (CPU) в октябре 2005 года на все поддерживаемые базы данных (с 8.1.7.4 до 10.1.0.5).

Давайте по порядку

DBMS_ASSERT - PL/SQL пакет, который содержит следующие функции:

Подробное объяснение этих функций и их использовании может быть найдено в статье.

Если удастся обойти проверку правильности пользовательских данных одной из этих функций, то станет возможным выполнение нападений SQL инъекции против множества уязвимых PL/SQL процедур и функций, которые легко обнаружить в полностью залатанных версиях Oracle (8.1.7.4 до 10.2.0.2 с CPU July 2006), используя поиск нужной строки в распакованном PL/SQL коде. О способах распаковки PL/SQL (+ простой PoC), было рассказано Пете Финнигангом на конференции Black Hat 2006.

Н ачнем с некоторыми простыми PL/SQL примерами

Процедура PL/SQL принимает параметр TABLENAME и привязывает этот параметр к динамическому SQL оператору. Этот SQL оператор будет выполнен непосредственно при запуске. Уязвимое решение без dbms_assert:

Теперь мы используем обычное имя таблицы в качестве параметра: Так как этот параметр не проверяется¸ мы можем внедрить PL/SQL код, например “or 1=1--" Решение с dbms_assert (все еще уязвимо): Теперь мы можем проверить пользовательские данные с dbms_assert.qualified_sql_name. Oracle использует этот подход несколько раз во внутреннем PL/SQL коде. Мы передаем нашу таблицу CAT как параметр, и все работает как и ожидалось: Теперь давайте попытаемся внедрить дополнительный код. На сей раз dbms_assert.qualified_sql_name отобразит ошибку, и динамический код не будет выполнен. Теперь вводим название объекта в двойных кавычках в нашу процедуру: И, как не странно, это работает..

dbms_assert.qualified_sql_name пропускает проверку правильности, если параметр заключен в двойные кавычки. Если вы используете DBMS_ASSERT.sql_object_name, вы должны создать сначала объект, например CREATE TABLE " ' or 1=1-- ".

Злоумышленник может использовать эту методику (двойные кавычки около параметров), чтобы обойти dbms_assert. Об этой уязвимости, и некоторых связанных ошибок безопасности, было сообщено компании Oracle в Апреле 2006 года.

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