如何在不显示密码的情况下从unix连接oracle数据库

如何在不显示密码的情况下从unix连接oracle数据库,oracle,shell,unix,Oracle,Shell,Unix,我正在尝试从Linux服务器连接Oracle数据库,其中无法修改环境变量和tnsnames.ora 我使用下面的代码来连接,它工作正常,并且我能够使用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=

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

我使用下面的代码来连接,它工作正常,并且我能够使用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将db从shell脚本连接到spool数据


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

省略密码;系统将提示您输入,但它将不可见(例如Windows,但在本例中并不重要):


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

最干净的方法是使用Oracle Wallet存储数据库密码,以便您的脚本可以使用它们。
否则,如果您可以作为oracle产品所有者(“oracle”大部分时间)登录,并且它属于“dba”组,则您可以作为sys进行连接,而无需键入密码(sqlplus/as sysdba),但这是一种特权访问,不要将其用于业务流程。

您所说的“显示”是什么意思?您是否担心其他人能够在您的脚本中看到密码(无论您多么努力地锁定priv,您都应该看到),还是只担心其他人能够看到?
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>