代码之家  ›  专栏  ›  技术社区  ›  vick_4444

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

  •  0
  • vick_4444  · 技术社区  · 7 年前

    我希望使用一个隐藏了密码的sqlplus命令,这样它就不会出现在ps-ef命令中。

    我知道有很多解决方案提供了整个互联网博客,但其中大多数似乎需要管理员特权,我有限制访问这台服务器。其他人似乎对我不起作用。

    我当前使用的命令如下:

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

    传说:

    某些用户名:schema/user

    部分密码:密码

    这个数据库的sid。

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

    任何指点都非常感谢。

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

    1 回复  |  直到 7 年前
        1
  •  5
  •   Alex Poole    7 年前

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

    你可以使用 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中的函数并传递实际的变量值。

        2
  •  3
  •   Christopher Jones    7 年前
    • 使用 sqlplus -s SOME_USERNAME@\"somedns.intra.com:1500/SOMESID\" @some.sql 并在命令行中输入密码。

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

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