【发布时间】:2015-08-30 23:29:10
【问题描述】:
-bash-4.1$ export TNS_ADMIN="/tmp/PKI/DB_A"
-bash-4.1$ sqlplus /@DB_A
连接良好
-bash-4.1$ export TNS_ADMIN="/tmp/PKI/DB_B"
-bash-4.1$ sqlplus /@DB_B
连接良好
-bash-4.1$ sqlplus /@DB_A
错误登录被拒绝(因为最后一个 TNS_ADMIN 路径指向 DB_A)
有一个使用 JDBC 的 TNS 名称的选项,即将 oracle.net.TNS_ADMIN 属性设置为包含 tnsnames.ora 文件的目录 (java -Doracle.net.tns_admin=$ORACLE_HOME/network/admin) .
情况是,我将无法更改 TNS_ADMIN 路径。 Oracle sqlplus NOT 中是否有任何选项可以指定 TNS_ADMIN 路径但无缝连接到 DB_A 和 DB_B ?
【问题讨论】:
-
为什么不能更改 TNS_ADMIN?您对 sqlplus 或 JDBC 有疑问吗?在 Unix 上还有用户本地文件
~/.tnsnames.ora。因此,您可以将其设为符号链接,并且可以使用ln -sf更改其目标。 PS:AFAIK Oracle 钱包实现了与 Java keytool 相同的接口。因此,您可以将其用作 Java 密钥库。 sqlplus 登录只是其中一种用法。 -
嗨 ibre,情况是,我将无法更改 TNS_ADMIN 路径。 Oracle sqlplus 中是否有任何选项不指定 TNS_ADMIN 路径但无缝连接到 DB_A 和 DB_B ?
-
我不这么认为。也许您可以创建一个从 DB_A 到 DB_B 的 dblink - 但这确实不是一个解决方案。要么你也有 shell 访问权限,然后你可以更改 env。变量,或者它在你和系统管理员之间。如果他们做出这样的限制,那么他们应该找到解决方案。