我有一个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服务器上完成它的工作,而不是在另一个UNIX服务器上。
当我使用bash -x
运行脚本时,可以看到命令扩展为:
sqlplus -s myUser/myPassword@myDatabase
...which应该做得很好(实际上是在一台服务器上工作),但是失败服务器中的响应是:
错误: ORA-01017:无效用户名/密码;登录被拒绝
SP2-0306:无效选项。用法:连接为{SYSDBA\SYSOPER},其中::= /x-SP2-0306:无效选项。
我猜它对bash的作用大于对甲骨文的作用,但我不是bash专家。我遗漏了什么配置或细节吗?
编辑:
为了更好地解决这个问题,我现在在第三个开发服务器上运行两个版本的脚本,在不同的测试中,如果我使用以下方式登录就可以了:
sqlplus -s $usrid/$usrid_pass@myDatabase
但当我试着:
sqlplus -s $usr_pass
所以有点烦人。
除此之外,我还要检查te配置文件同步过程.我有新发现时会告诉你的。谢谢大家。
发布于 2011-07-01 16:57:57
这一信息非常明确:
这表明您的客户端配置没有任何问题。
所以,这就让你
的数据库
可能性:
发布于 2018-01-01 01:54:27
这对我有用:连接用户/“密码”,我想如果密码包含像'@‘这样的特殊字符,我们需要使用"“作为密码。
发布于 2011-07-02 04:55:48
这是一个愚蠢的问题,但您确定您是在两个unix服务器上使用bash
外壳吗?
我会试着替换
export USR_PASS="$USRID/$USRID_PASS@myDatabase"
使用导出USR_PASS="${USRID}/${USRID_PASS}@myDatabase“
以确保正确地解释变量。
作为最后,异国情调,但密码是否包含任何字符以外的基本阿尔法-数字和标点符号。因为10g不区分大小写,所以将小写密码转换为大写,这可能会对重音字符造成奇怪的影响。
https://stackoverflow.com/questions/6550542
复制相似问题