oracle - 使用 sqlplus 命令行隐藏纯文本密码
问题描述
我希望使用隐藏密码的 sqlplus 命令,这样它就不会出现在 ps -ef 命令上。
我知道互联网博客上提供了很多解决方案,但其中大多数似乎都需要管理员权限,而且我在此服务器上的访问权限受到限制。其余的似乎对我不起作用。
我目前使用的命令如下:
sqlplus -s SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID @some.sql
传奇:
SOME_USERNAME:架构/用户
SOME_PASSWORD:密码
SOMESID:此数据库的 SID。
@some.sql:包含插入语句的 sql 文件。
任何指针都非常感谢。
更新:忘了提到这个 sqlplus 命令将在 shell 脚本中使用。
解决方案
在这种情况下,如何从 shell 脚本中输入密码?
您可以使用heredoc:
sqlplus -s /nolog <<!EOF
connect SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID
@some.sql
!EOF
connect
和被视为 SQL*Plus的@some.sql
输入流,就像您在交互式会话中键入它们一样,并且不是对可执行文件的初始调用的一部分 - 因此连接详细信息不会出现在ps
输出中。
顺便说一句,如果您愿意,您也可以使用变量,因为变量扩展发生在 shell 中,然后它将流传递给可执行文件 - 所以即使 SQL*Plus 不理解 say $PASSWD
,请参考 heredoc 作品中的内容和实际变量值被传递。
推荐阅读
- sql-server - 查找数据库的可用空间(sql server)
- python - 如何使用python 2.7或更低版本读写parquet文件
- python - 轴值未显示为 python 中的 DataFrame
- sql-server - 从链接的 MS SQL 服务器复制数据库
- scala - SparkML - 使用 RegressionEvaluator() 同时获取多个指标
- scala - 无法在 spark-shell 中连接到 Cassandra
- php - laravel中数组验证下的验证
- python - 在 PySpark 中加入两个具有空值的数据帧时出现问题
- javascript - Angular 6:如何访问 mat-autocomplete 下拉列表中的所有选项值?
- django - django/celery 多个队列不消耗任何任务