“sqlplus /”的工作原理

时间:2012-05-08 07:37:42

标签: oracle unix sqlplus

我想知道sqlplus如何在连接语句中使用用户名和密码“sqlplus /".

如果我想与不同的用户连接“sqlplus /”,如何更改配置。它可能看起来很尴尬,但在我的脚本中“sqlplus /”被编码,我们无法改变它。我想使用相同的命令与不同的用户连接。

1 个答案:

答案 0 :(得分:3)

来自Oracle文档:

  

/

     

表示使用操作系统身份验证的默认登录。在默认登录中,SQL * Plus通常会尝试使用用户名OPS $ name登录,其中name是您的操作系统用户名。请注意,前缀“OPS $”可以设置为任何其他文本字符串。

     

例如,您可能希望将INIT.ORA参数文件中的设置更改为LOGONname或USERIDname。有关操作系统身份验证的信息,请参阅“Oracle9i数据库管理员指南”。

因此,它使用您的操作系统详细信息来构建您的Oracle用户名,这意味着您可能无法设置任意名称。

用于指定前缀的Oracle初始化参数为OS_AUTHENT_PREFIX,其默认值为OPS$

如果您无法更改调用sqlplus的脚本,可以做的一件事就是在Oracle之前的路径中插入自己的 sqlplus脚本,沿着(未经过彻底测试的):

#!/bin/bash
if [[ "$1" != "/" ]] ; then
    $ORACLE_HOME/bin/sqlplus "$@"
    exit
fi
shift
$ORACLE_HOME/bin/sqlplus $MY_ORA_USER/$MY_ORA_PWD "$@"

这将是您的脚本调用的那个,它将检查第一个参数以查看它是否是简单的/。如果没有,它将使用相同的参数调用真实的sqlplus

否则,它将使用/环境变量形成的用户/密码替换MY_ORA_*