Итак, шифрование сценариев позволяет нам спрятать исполняемый этими сценариями код. При запуске таких сценариев, код, который отображается в Операторе, является нечитабельным. Хотя и работает, сам по себе, правильно.
ODI использует алгоритм DES для шифрования, используя в качестве ключа шифрования строку символов или файл. Этот ключ может использоваться и для зашифроки и для расшифровки сценариев.
Нет способа расшифровать зашифрованный сценарий без ключа шифрования. Поэтому очень важно держать этот ключ в безопасном месте. Так же разработчики ODI советуют использовать для каждой разработки свой уникальный ключ. Я думаю, имелось ввиду, что для одного проекта один ключ для всех сценариев. Для другого - другой и т.п.
Для того, чтобы зашифровать сценарий, нажимаем на сценарии правой кнопкой мыши и в контекстном меню выбираем команду Encrypt:
Вводим ключ и нажимаем Ок. Появится диалоговое окно с возможностью сохранения введенного ключа в виде файла.
Попытка использования слишком короткой длины ключа шифрования может привести к появлению ошибки. Для правильной работы требуется ключ с длиной не менее 10 символов.
На этом шифрование сценария закончена, и он может быть запущен. Название сценария, названия шагов процедур, переменных, шагов модуля знаний при просмотре сессии в Операторе отображаются так же, как и для незашифрованного сценария. А вот содержимое шагов выглядит примерно так:
Можно передавать на пром сервер для развертывания.
После того, как администраторы и технологии напишут несколько писем и пару раз позвонят, в том числе и начальству, можно будет убрать шифрование со сценария, выбрав в контекстном меню команду Decrypt:
В случае, если в диалоге шифрования выбрать опцию Get a new encryption key, ODI сам сгенерирует новый ключ шифрования, зашифрует им сценарий, а затем предложит сохранить ключ в файл:
И на последок попробуем узнать, что получится, если ключ шифрования при операции дешифровки будет введен неверно:
Повторная попытка дешифровки с правильным ключом проходит успешно.
так заморишся шифровать по одному сценарию ... а вот что-то функции по шифрованию всего я не вижу
ОтветитьУдалитьЯ спросил об этом у Marco Ragogna, который проводил семинар по ODI. Его ответ таков - к сожалению, ни в 10, ни в 11 версии такой возможности нет.
ОтветитьУдалитьТы уверен, что вам на проекте это может быть вообще нужно?
я уверен, что это нам в ближайшее время не понадобится, но практически от этого польза может быть только когда есть массовая операция. Ну или весь проект - это десяток сценариев ;)
ОтветитьУдалитьИзвините, что не в тему. Denys, Вы проговорились про использование функций... Это случайно не из арсенала ODI Java API (http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e17060/overview-tree.html)? Может, есть кто-то, кто его использовал?
ОтветитьУдалитьСобственно, вопрос (раз уже все равно я не той теме) - как после Reverse-а автоматом удалить объекты, которых уже нет в БД? Сам ODI принципиально ничего не удаляет. Очистить всю модель и обновить ее из БД тоже не устаивает: как минимум, ODI не даст удалить объект, если он уже используется.
ОтветитьУдалить2Денис
ОтветитьУдалитьПольза от шифрования отдельных сценариев вполне может быть. Например, в случае если сценарий делается так, по техническим причинам, что в открытом виде показывает некий пароль, или там, секретный IP адрес какого-то сервера. То его зашифровка поможет с безопасностью.
Видимо, разработчики ODI так и решили, и потому не включили массовое шифрование сценариев.
2gka2001
ОтветитьУдалитьНе совсем понимаю, зачем удалять объекты, которых уже нет в БД. Но, удалять их, скорее всего, можно, с помощью модификации модуля знаний реверса, и, при этом, использовать этот RKM для реверса таблиц из СУБД в модели ODI.
Но даже эта модификация не даст удалить те модели, которые используются в интерфейсах.
Как для меня удалять неиспользуемые сценарии(интерфейсы) - намного веселее. Вот как раз на прошлой неделе написал скрипт дабы проверить какие сценарии не заканчиваются в Staging (т.е. идёт загрузка из исходной системы + возможно потом эти данные ещё обрабатываются во временных таблицах, но в итоге в хранилище не попадают). Как результат - минус 250 сценариев.
ОтветитьУдалитьА по поводу функции шифрования - ну ведь можно перегенерировать сценарии или для папки или для всего проекта (OdiGenerateAllScen). Так раз уж делали щифрование, то почему бы не сделать такую же функцию и для массового шифрования? Тем более, что это явно не сложно :-)
ОтветитьУдалитьVS, в БД переименовали PK. Запустили Reverse. Потом ODI заругался,что не может запустить интерфейс, т.к. у таблицы ... 2 первичных ключа - неудаленный старый и новый:)
ОтветитьУдалитьRKM не удаляет объекты из модели. Только добавляет новые или изменяет.