使用sqlplus命令行隐藏明文密码
Hiding plain text password with sqlplus command line
我希望使用隐藏密码的 sqlplus 命令,这样它就不会显示在 ps -ef 命令中。
我知道互联网博客上提供了很多解决方案,但其中大多数似乎都需要管理员权限,而且我在此服务器上的访问权限受到限制。其余的似乎对我不起作用。
我目前使用的命令如下:
sqlplus -s SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID @some.sql
图例:
SOME_USERNAME: schema/user
SOME_PASSWORD: 密码
SOMESID:此数据库的 SID。
@some.sql:包含插入语句的 sql 文件。
非常感谢任何指点。
更新:忘记提及此 sqlplus 命令将在 shell 脚本中使用。
使用sqlplus -s SOME_USERNAME@\"somedns.intra.com:1500/SOMESID\" @some.sql
并在命令行输入密码。
或者使用外部验证,完全不使用密码
最后,SOMESID 不是 SID,它是服务名称。您使用的 Easy Connect 语法仅适用于服务名称。 SID 非常老派。
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 的输入流,就像您在交互式会话中输入它们一样,而不是对可执行文件的初始调用 - 因此连接详细信息不会出现在 ps
输出中。
如果你愿意,你也可以使用变量,顺便说一下,因为变量扩展发生在 shell 之前,它会将流传递给可执行文件 - 所以即使 SQL*Plus 不会不懂说$PASSWD
,指的是heredoc中的作品,传递的是实际的变量值。
我希望使用隐藏密码的 sqlplus 命令,这样它就不会显示在 ps -ef 命令中。
我知道互联网博客上提供了很多解决方案,但其中大多数似乎都需要管理员权限,而且我在此服务器上的访问权限受到限制。其余的似乎对我不起作用。
我目前使用的命令如下:
sqlplus -s SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID @some.sql
图例:
SOME_USERNAME: schema/user
SOME_PASSWORD: 密码
SOMESID:此数据库的 SID。
@some.sql:包含插入语句的 sql 文件。
非常感谢任何指点。
更新:忘记提及此 sqlplus 命令将在 shell 脚本中使用。
使用
sqlplus -s SOME_USERNAME@\"somedns.intra.com:1500/SOMESID\" @some.sql
并在命令行输入密码。或者使用外部验证,完全不使用密码
最后,SOMESID 不是 SID,它是服务名称。您使用的 Easy Connect 语法仅适用于服务名称。 SID 非常老派。
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 的输入流,就像您在交互式会话中输入它们一样,而不是对可执行文件的初始调用 - 因此连接详细信息不会出现在 ps
输出中。
如果你愿意,你也可以使用变量,顺便说一下,因为变量扩展发生在 shell 之前,它会将流传递给可执行文件 - 所以即使 SQL*Plus 不会不懂说$PASSWD
,指的是heredoc中的作品,传递的是实际的变量值。