И, наконец, экзотично, если пароль содержит какие-либо символы, кроме буквенно-цифровых символов и знаков препинания. Поскольку 10g не чувствителен к регистру, пароль в нижнем регистре преобразуется в верхний регистр, что может вызвать странные эффекты с такими вещами, как символы с ударением
я есть скрипт bash, который подключается к базе данных Oracle 10g.
На первом этапе он берет некоторые переменные из файла «config» с помощью следующей команды
. /path/to/my/configfile.ini
В конфигурационном файле есть несколько переменных:
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
Так что это немного раздражает.
Кроме того, мне нужно проверить процесс синхронизации файла конфигурации ... Я дам вам знать, когда я доберусь до чего-то нового. Спасибо всем.