У меня есть скрипт bash, который подключается к базе данных Oracle 10g.
На первом этапе он берет некоторые переменные из файла "config" с помощью следующей команды
. /path/to/my/configfile.ini
InВ конфигурационном файле есть несколько переменных:
export USRID=myUser
export USRID_PASS=myPassword
export USR_PASS="$USRID/$USRID_PASS@myDatabase"
Затем он на самом деле подключается через sqlplus с помощью команды:
sqlplus -s $usr_pass
Ужасные проблемы безопасности и проектирования в стороне (этот скрипт был около 5года).Это фактически делает свою работу на одном из наших серверов UNIX, но не на другом.
Когда я запускаю сценарий с bash -x
, я вижу, что команда расширилась до:
sqlplus -s myUser/myPassword@myDatabase
... что должно работать нормально (и на самом деле работает на одном сервере), но ответ на сбойном сервере:
ОШИБКА: ORA-01017: неверное имя пользователя / пароль;вход в систему запрещен
SP2-0306: Неверный параметр.Использование: CONN [ECT] [вход] [AS {SYSDBA | SYSOPER}] где :: = [/] [@] |SP2-0306: Неверный параметр.
Я предполагаю, что это больше связано с bash, чем с oracle, но я не эксперт по bash.Есть какая-то конфигурация или детали, которые я пропускаю?
РЕДАКТИРОВАТЬ:
Пытаясь определить проблему немного больше, я сейчас работаю две версиисценарий на третьем сервере разработки и в разных тестах, логин работает, если я делаю это с:
sqlplus -s $usrid/$usrid_pass@myDatabase
, но не когда я пытаюсь:
sqlplus -s $usr_pass
Так что это немного раздражает.
Кроме того, мне нужно будет проверить процесс синхронизации конфигурационного файла ... Я дам вам знать, когда доберусь до чего-то нового.Спасибо всем.