【问题标题】:how to connect oracle database from unix without showing password如何在不显示密码的情况下从 unix 连接 oracle 数据库
【发布时间】:2019-04-11 10:59:59
【问题描述】:

我正在尝试从无法修改环境变量和 tnsnames.ora 的 Linux 服务器连接 Oracle 数据库。

我正在使用以下代码进行连接,它工作正常,我可以使用 sqlplus 连接数据库。

export ORACLE_HOME=/opt/oracle/product/112030_cl_64/cl
export PATH=/opt/oracle/product/112030_cl_64/cl/bin:$PATH
sqlplus myuser/mypass@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(Host=x)(Port=x)))(CONNECT_DATA=(SERVICE_NAME=x)))

现在我找不到任何解决方案如何执行它,这样我就不需要每次都手动执行它,也不想与其他人共享密码。我想使用 sqlplus 从 shell 脚本连接 db 以假脱机数据。

任何线索都是可观的。提前致谢。

【问题讨论】:

  • 另外,“显示”是什么意思 - 您是否担心其他人能够看到您脚本中的密码(无论您尝试锁定多少权限,您都应该看到),或者只有任何人能够see it via ps

标签: oracle shell unix


【解决方案1】:

最简洁的方法是使用 Oracle Wallet 存储数据库密码,以便您的脚本可以使用它们。 否则,如果您可以作为 oracle 产品所有者(大多数情况下是“oracle”)登录并且它属于“dba”组,您可以以 sys 身份连接而无需输入密码(sqlplus / as sysdba),但它是特权访问,不要不要将其用于业务流程。

【讨论】:

    【解决方案2】:

    省略密码;系统会提示您输入它,但它是不可见的(Windows 示例,但在这种情况下无关紧要):

    M:\>sqlplus scott@orcl
    
    SQL*Plus: Release 11.2.0.1.0 Production on ╚et Tra 11 13:01:35 2019
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    Enter password:
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
    Data Mining and Real Application Testing options
    
    SQL>
    

    当然,这需要您每次都键入。如果它存储在某个地方,其他任何人都可以看到它。也许有办法,但我不知道。

    【讨论】:

      猜你喜欢
      • 2015-05-29
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 2021-01-20
      相关资源
      最近更新 更多