【问题标题】:cannot call sqlplus from linux where password contains $ dollar sign无法从密码包含 $ 美元符号的 linux 调用 sqlplus
【发布时间】:2020-09-30 11:52:57
【问题描述】:

我已经花了几个小时尝试各种建议和组合,但在我的一生中,无法从直接 linux 命令行或 bash 脚本调用 sqlplus 以使用包含 $ 的密码

这些我都试过了

sqlplus -S mylogin/'"my$password"'@My_DBName
sqlplus -S mylogin/'my$password'@My_DBName
sqlplus -S mylogin/"my$password"@My_DBName

我已经尝试了与上面相同的方法,但将 \ 放在 $ 之前,并且未显示其他各种尝试...

尝试使用 CONNECT 代替纯密码,以及各种引号和反斜杠(此处仅显示一个示例)

sqlplus -S /nolog << EOF
CONNECT mylogin/my$password@My_DBName;    

sqlplus -S /nolog << EOF
CONNECT mylogin/'"my$password"'@My_DBName;

我确实知道一般 sqlplus 命令作为单个命令,或与 CONNECT 一起适用于不包含 $ 的密码。

谁能告诉我我做错了什么以及为什么?如果是这样,我非常感谢你!

已编辑 - 我的坏 - 啊!

原来有人更改了密码。事实上,它甚至可以使用 $ 并指定单引号,例如:

sqlplus -S mylogin/'my$password'@My_DBName

【问题讨论】:

  • 您的 4 位 Oracle 版本是多少?什么是操作系统?例如,在 Linux 上使用 Oracle 12.2.0.1 和 bash 将密码放在单引号之间应该可以工作。
  • 如果您不确定 shell 在做什么,请将您的 sqlplus 命令放入 shell 脚本并添加脚本 set -x 以检查 shell 正在运行的完整 sqlplus 命令。
  • 我应该说!! ...“确实有效”表示由于“ORA-01017:用户名/密码无效;登录被拒绝”而无法登录。仅供参考 linux 2.6.32-754.9.1.el6.x86_64 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit

标签: linux oracle passwords sqlplus


【解决方案1】:

在我的 MacOS Catalina 上测试。适用于单引号。

您确定您的 -S 选项吗? 登录后没有显示任何内容....(但您已登录)。你还是可以select * from dual;

system@XEPDB1> create user mylogin identified by my$password;

User created.

Elapsed: 00:00:00.05
system@XEPDB1> grant create session to mylogin;

Grant succeeded.

Elapsed: 00:00:00.03
system@XEPDB1> exit

sqlplus mylogin/'my$password'@localhost/XEPDB1

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 11 13:17:35 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

mylogin@XEPDB1>


-- change from my$password to $$$$password
mylogin@XEPDB1> passw
Changing password for MYLOGIN
Old password:
New password:
Retype new password:
Password changed
mylogin@XEPDB1> exit

sqlplus mylogin/'$$$$password'@localhost/XEPDB1

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 11 13:20:09 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Last Successful login time: Thu Jun 11 2020 13:17:35 +02:00

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

mylogin@XEPDB1>

sqlplus -S mylogin/'$$$$password'@localhost/XEPDB1
select 'No errors - I am logged in!' from dual;

'NOERRORS-IAMLOGGEDIN!'
---------------------------
No errors - I am logged in!

Elapsed: 00:00:00.02

【讨论】:

  • 我的主要错误 - 有人更改了密码!我应该仔细检查一下。这就是它不起作用的真正原因。新密码还包含一个 $ ,并且可以使用单引号,如您所示。嗬!感谢您的宝贵时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 2016-02-09
  • 2019-10-01
  • 2015-12-25
  • 2017-09-15
  • 2016-07-06
  • 1970-01-01
相关资源
最近更新 更多