Мне нравится ответ Вернфрида. Я хотел бы немного расширить, если можно.
Если вы попробуете метод WRAP (некоторые говорят, что его легко взломать), вот несколько способов проверить его эффективность:
- Проверьте с помощью tkprof, обнаруживает ли выполнение объектов WRAPd какие-либо логи c или SQL
- Проверьте V $ SQL и связанные представления, чтобы увидеть, если при выполнении объектов WRAPd обнаруживаются какие-либо логи c или SQL
- Обратитесь к OEM, чтобы узнать, показывает ли выполнение объектов WRAPd какие-либо логики c или SQL
Я никогда не проверял выше, но если бы я рассматривал возможность использования Я бы сделал так, чтобы я знал пределы любой защиты, которую он дает Учитывая важность того, чтобы администраторы баз данных могли отслеживать и настраивать запросы, я был бы удивлен, если бы SQL, по крайней мере, не был определен с помощью стандартных представлений / запросов производительности.
Также обратите внимание, если ваш код имеет какую-либо динамику c SQL или PL SQL, это может отображаться в таблице символов упакованного файла (в виде шестнадцатеричных кодов).
Я думаю, что вы не можете обернуть код TRIGGER (хотя, конечно, у вас могут быть триггеры, вызывающие процедуры PL SQL, которые обернуты).
Если вы являетесь поставщиком программного обеспечения, обеспокоенным поиском клиентских DBA вокруг вашего кода, учитывая вышеприведенный пункт о SQL мониторинге и предположении, что администратор БД имеет доступ к подходящему взломщику, я не думаю, что вы можете многое сделать, чтобы остановить их Возможно, вы сможете помешать пользователям, не являющимся администраторами баз данных, сделать это, ограничив доступ к DBA_SOURCE, V $ SQL и связанным представлениям.
Из интереса я взглянул на собственную компиляцию PL SQL, чтобы увидеть, может ли скомпилированный М-код быть доставлен вместо источника PL SQL, но кажется, что вам необходимо также отправить код PL SQL.
Какие есть другие варианты? Можно ли подключить PL SQL к удаленной защищенной базе данных и использовать ее через вызовы REST API? Это сильно зависит от логики приложения c и доступа к данным, и если выполнимо иметь такую службу на защищенном удаленном сервере.
Последнее, что я хотел бы рассмотреть, если бы было абсолютно необходимо скрыть логи c будет реализовано как модули Pro C / C / Java для создания ВНЕШНИХ БИБЛИОТЕК. Но обратите внимание, что и здесь SQL вызовы в Pro C / C / Java будут по-прежнему выставляться в V $ SQL. Плюс, вокруг не так много людей, которые пишут Pro *C.