Мне недавно пришлось стереть свои навыки Perl и сценариев оболочки, чтобы помочь некоторым коллегам. Рассматриваемым коллегам было поручено предоставлять некоторые отчеты из внутреннего приложения с большой базой данных базы данных Oracle, и у них просто нет навыков для этого. В то время как некоторые могут задаться вопросом, есть ли у меня и эти навыки (ухмылка), очевидно, достаточно людей думают, что я делаю, чтобы означать, что я не могу вытащить из этого.
Итак, на мой вопрос - для извлечения отчетов из базы данных мой сценарий, очевидно, должен подключаться и выполнять запросы. До сих пор мне не удалось найти хорошее решение о том, где хранить имя пользователя и пароль для базы данных, поэтому в настоящее время она сохраняется в виде открытого текста в сценарии.
Есть ли хорошее решение для этого, которое кто-то другой уже написал, возможно, как модуль CPAN? Или есть что-то еще, что лучше сделать - например, сохранить комбо пользователя / пароля в отдельном файле, который спрятан где-то еще в файловой системе? Или я должен хранить их в зашифрованном виде, чтобы избежать их извлечения из моих сценариев с помощью общесистемного grep?
Edit:
База данных Oracle находится на сервере HP-UX.
Сервер приложений (запускающий сценарии оболочки) - Solaris.
Установка сценариев, которые будут принадлежать только мне, запрещена, они должны принадлежать учетной записи службы, к которой имеют доступ несколько сотрудников службы поддержки.
Сценарии предназначены для запуска в качестве заданий cron.
Я хотел бы пойти с аутентификацией с открытым ключом, но я не знаю методов, чтобы заставить это работать с Oracle - если есть такой метод - просветите меня!