oracle - 使用sqlplus命令行隐藏明文密码

标签 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 脚本中使用。

最佳答案

How do I input the password from within a shell script in this case?

您可以使用 a heredoc :

sqlplus -s /nolog <<!EOF
connect SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID
@some.sql
!EOF

connect@some.sql 被视为 SQL*Plus 的输入流,就像您在交互式 session 中键入它们一样,而不是对可执行文件的初始调用的一部分 - 因此连接详细信息不会出现在 ps 输出中。

顺便说一下,如果你愿意,你也可以使用变量,因为变量扩展发生在 shell 中,然后将流传递给可执行文件 - 所以即使 SQL*Plus 不理解 $PASSWD,引用 heredoc 中的代码,并传递实际变量值。

关于oracle - 使用sqlplus命令行隐藏明文密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54776070/

相关文章:

java - 如何用java做oracle TNSPING?

sql - Oracle 从字符串中提取字母字符

linux - 在Oracle中,如何更改 'default'数据库?

sql - 从包含来自单独列的数据的列中选择数据

database - sqlplus 无法在 linux 64 上启动

python - 使用 Python 将数据从 Excel 导入到 Oracle Table

python - Python中按字节长度分割字符串

sql - 将 where 子句与 Union 一起使用

sql - 在另一个 plsql 脚本中调用 plsql 脚本

oracle - Oracle SQLPlus 脚本文件名中的转义 'At sign' (@)