Oracle 使用sqlplus命令行隐藏纯文本密码

Oracle 使用sqlplus命令行隐藏纯文本密码,oracle,sqlplus,Oracle,Sqlplus,我希望使用一个sqlplus命令,在视图中隐藏密码,这样它就不会显示在ps-ef命令中 我知道互联网博客上提供了很多解决方案,但大多数解决方案似乎都需要管理员权限,我对这台服务器的访问受到限制。其余的似乎都不适合我 我当前使用的命令如下所示: sqlplus -s SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID @some.sql 图例: 用户名:schema/user 密码:密码 SOMESID:此数据库的SID @som

我希望使用一个sqlplus命令,在视图中隐藏密码,这样它就不会显示在ps-ef命令中

我知道互联网博客上提供了很多解决方案,但大多数解决方案似乎都需要管理员权限,我对这台服务器的访问受到限制。其余的似乎都不适合我

我当前使用的命令如下所示:

sqlplus -s SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID @some.sql
图例:

用户名:schema/user

密码:密码

SOMESID:此数据库的SID

@some.sql:包含insert语句的sql文件

非常感谢任何指点

更新:忘记提到这个sqlplus命令将在shell脚本中使用。

  • 使用
    sqlplus-s SOME_USERNAME@“somedns.intra.com:1500/SOMESID\@SOME.sql
    并在命令行中输入密码

  • 或者使用外部身份验证,根本不使用密码

  • 最后,SOMESID不是SID,而是服务名。您使用的Easy Connect语法仅适用于服务名称。小岛屿发展中国家是非常古老的学校


在这种情况下,如何从shell脚本中输入密码

您可以使用:

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


顺便说一句,如果您想使用变量,也可以使用变量,因为变量扩展在shell中将流传递给可执行文件之前发生在shell中-因此即使SQL*Plus不理解say
$PASSWD
,在herdoc中引用该命令,并传递实际变量值。

我忘了提到此sqlplus命令将在shell脚本中执行。让我更新主要问题。在这种情况下,如何从shell脚本中输入密码?谢谢您的回答。只有第一个解决方案对我有效。第二个失败,如下所示:{{输入密码:错误:ORA-01005:提供了空密码;拒绝登录SP2-0306:无效选项。用法:CONN[ECT][{logon |/| proxy}[as{SYSDBA | SYSOPER | SYSASM}][edition=value]]其中:=[/][@]SP2-0157:尝试3次后无法连接到ORACLE,退出SQL*Plus}但非常感谢您提出的第一个解决方案。我要用这个。非常感谢。嗯,我相信有一种方法可以做到这一点——虽然使用echo作为标准输入也不起作用——但我现在还没有意识到这一点。因为第一个适合你,我不会太担心它。。。
sqlplus -s /nolog <<!EOF
connect SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID
@some.sql
!EOF