首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我试图在Shell脚本中提供密码以连接DB2时,它失败并显示错误

当我试图在Shell脚本中提供密码以连接DB2时,它失败并显示错误
EN

Stack Overflow用户
提问于 2018-11-27 10:49:18
回答 2查看 283关注 0票数 0

当我试图在Shell脚本中提供密码以连接DB2时,它失败并显示错误

Shell脚本

代码语言:javascript
复制
#!/bin/bash
getResults()
{
db2 "connect to xyz user sam using P333vLMP$dFa4M0"
echo "Connected"
}
getResults
代码语言:javascript
复制
$ sh connectdb2.sh

。在SQL处理期间,它返回:

SQL30082N安全处理失败,原因是"24“(”用户名和/或密码无效“)。SQLSTATE=08001 DB21034E命令被处理为SQL语句,因为它不是有效的命令行处理器命令

但是当我没有在Shell脚本中提供密码时,它会提示输入密码,并且它正在连接。

我的问题是,我不希望提示密码,而是请任何人通过在shell脚本中隐式硬编码passowrd来帮助我连接到DB2。

谢谢你,萨马拉

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-27 10:58:48

如果在shell脚本中硬编码密码,这显然是一种安全风险。考虑将密码放在一个单独的文件中,该文件具有由脚本点缀的特殊权限。

但是,如果您在任何地方硬编码密码,那么如果密码包含对shell有意义的字符(在您的示例中是bash),则必须转义这些字符,以确保shell忽略它们。

对于密码示例,而不是P333vLMP$dFa4M0,应该是P333vLMP\$dFa4M0,因为$对shell具有特殊的意义。

票数 2
EN

Stack Overflow用户

发布于 2018-11-27 11:28:48

您可以用单引号环绕您的密码,以避免unix对特殊字符的错误解释。如果您不知道密码是否预先包含某些特殊字符,这可能会很有用。

代码语言:javascript
复制
printf "Password: "; stty -echo; read pwd; stty echo; db2 "connect to xyz user sam using '${pwd}'"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53497977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档