Большинство инструментов и скриптов Oracle требуют, чтобы вы передавали им пароль через командную строку, где все на одном компьютере могут их видеть. Пример:
exp <user>/<password> ...
Есть ли способ вызвать эти команды (например, sqlplus
, imp
, exp
) из сценария без ущерба для безопасности?
Вы можете использовать «идентифицированный извне», чтобы аутентификация выполнялась на уровне операционной системы.
Видеть: Руководство администратора по расширенной безопасности
для подробностей.
Для imp и exp вы можете указать параметры в файле. Вы можете изменить права доступа к этому файлу в файловой системе, чтобы сделать его доступным для чтения только выбранным вами людям. Проверьте документацию на параметр командной строки PARFILE. Параметр, который вы хотите включить в ПАРАМЕТР, - это параметр USERID.
Для SQLPLUS вы можете указать параметр / nolog и указать команду подключения в качестве первой строки выполняемого сценария sql.
sqlplus /nolog @myscript.sql
А затем в myscript.sql:
connect user/pass@tnsname
...
Для SQLPlus я обычно рекомендую создать файл или использовать «здесь» документ, чтобы вы могли защитить имя пользователя / пароль от просмотра с помощью команды «ps -ef» в Unix / Linux. Если имя пользователя / пароль содержится в файле сценария или sql-файле, вы можете защитить его, используя соответствующие права доступа пользователя / группы на чтение. Затем вы можете сохранить пользователя / проход внутри файла, как это в сценарии оболочки:
sqlplus -s /nolog <<EOF
connect user/pass
select blah from blah;
quit
EOF