我想知道sqlplus如何在连接语句中使用用户名和密码“sqlplus /".
如果我想与不同的用户连接“sqlplus /”,如何更改配置。它可能看起来很尴尬,但在我的脚本中“sqlplus /”被编码,我们无法改变它。我想使用相同的命令与不同的用户连接。
答案 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_*
。