带双引号用户名的sqlplus连接字符串
sqlplus connection string with a user name in double quotes
我想知道具有双引号名称的用户应该如何登录?
create user test_default identified by test_pass;
GRANT CREATE SESSION TO test_default;
sqlplus test_default/test_pass@localhost/DBRAZRAB <-- works fine, I'm connected
create user "test_lowercase" identified by test_pass;
GRANT CREATE SESSION TO "test_lowercase";
sqlplus "test_lowercase"/test_pass@localhost/DBRAZRAB <-- ORA-01017: invalid username/password; logon denied
SQL*另外:19.0.0.0.0 版 - 1 月 5 日星期三生产 12:34:56 2022
版本 19.3.0.0.0
我想,我应该以某种方式修改连接字符串,但是如何?
在我的 Windows 机器上,当尝试启动 SQLPlus 或 SQLcl 并使用相同的命令登录时,区分大小写似乎没有保留。
您可以做的一个选择是使用像 sqlplus /nolog
这样的命令启动 SQLPlus(或 SQLcl),然后像这样使用 conn
命令连接:
C:\temp>sqlplus /nolog
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 5 14:41:21 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
SQL> conn "test_lowercase"/test_pass@tnsinfo
Connected.
SQL>
当然,您可以做到 - 前提是您知道怎么做:)
正在创建用户,blabla - 它有效,如您所知:
SQL> connect sys as sysdba
Enter password:
Connected.
SQL> create user "test_lowercase" identified by test_pass;
User created.
SQL> grant create session to "test_lowercase";
Grant succeeded.
SQL> connect "test_lowercase"/test_pass
Connected.
SQL> exit
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
但是,您可以使用 sqlplus
可执行文件从操作系统连接吗?
c:\Temp>sqlplus "test_lowercase"/test_pass
SQL*Plus: Release 11.2.0.2.0 Production on Sri Sij 5 20:46:04 2022
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
糟糕!那不行。
但是,如果您 转义 双引号,那么它就可以工作:
c:\Temp>sqlplus \"test_lowercase\"/test_pass
SQL*Plus: Release 11.2.0.2.0 Production on Sri Sij 5 20:46:09 2022
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
哒哒哒!
我想知道具有双引号名称的用户应该如何登录?
create user test_default identified by test_pass;
GRANT CREATE SESSION TO test_default;
sqlplus test_default/test_pass@localhost/DBRAZRAB <-- works fine, I'm connected
create user "test_lowercase" identified by test_pass;
GRANT CREATE SESSION TO "test_lowercase";
sqlplus "test_lowercase"/test_pass@localhost/DBRAZRAB <-- ORA-01017: invalid username/password; logon denied
SQL*另外:19.0.0.0.0 版 - 1 月 5 日星期三生产 12:34:56 2022
版本 19.3.0.0.0
我想,我应该以某种方式修改连接字符串,但是如何?
在我的 Windows 机器上,当尝试启动 SQLPlus 或 SQLcl 并使用相同的命令登录时,区分大小写似乎没有保留。
您可以做的一个选择是使用像 sqlplus /nolog
这样的命令启动 SQLPlus(或 SQLcl),然后像这样使用 conn
命令连接:
C:\temp>sqlplus /nolog
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 5 14:41:21 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
SQL> conn "test_lowercase"/test_pass@tnsinfo
Connected.
SQL>
当然,您可以做到 - 前提是您知道怎么做:)
正在创建用户,blabla - 它有效,如您所知:
SQL> connect sys as sysdba
Enter password:
Connected.
SQL> create user "test_lowercase" identified by test_pass;
User created.
SQL> grant create session to "test_lowercase";
Grant succeeded.
SQL> connect "test_lowercase"/test_pass
Connected.
SQL> exit
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
但是,您可以使用 sqlplus
可执行文件从操作系统连接吗?
c:\Temp>sqlplus "test_lowercase"/test_pass
SQL*Plus: Release 11.2.0.2.0 Production on Sri Sij 5 20:46:04 2022
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
糟糕!那不行。
但是,如果您 转义 双引号,那么它就可以工作:
c:\Temp>sqlplus \"test_lowercase\"/test_pass
SQL*Plus: Release 11.2.0.2.0 Production on Sri Sij 5 20:46:09 2022
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
哒哒哒!