如何从Unix连接Oracle数据库而不显示密码

时间:2019-04-11 11:00:00

标签: oracle shell unix

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

我正在使用以下代码进行连接,这可以正常工作,并且能够使用sqlplus连接数据库。

SELECT user_id,GROUP_CONCAT(CONCAT(post_id,'(',point,')') SEPERATOR ' | ') as post_points,SUM(point) as total_points FROM table_name GROUP BY user_id

现在我无法找到任何解决方案,我该如何执行它,这样就不必每次都手动执行它,并且我也不想与其他任何人共享密码。我想使用sqlplus从外壳程序脚本连接数据库以后台处理数据。

任何线索都是可观的。预先感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

忽略密码;系统会提示您输入它,但是它是不可见的(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>

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