记录一个简单的小问题,如何避免在简化连接方式连接数据库时,避免输入密码。
Oracle10g的简化连接方式:http://yangtingkun.itpub.net/post/468/390487
从10g开始,Oracle开始支持简化连接方式,这种方法简化了连接Oracle数据库的步骤,用户不再需要配置TNSNAMES.ORA就可以直接连接到远端数据库。
下面是一个使用简化连接的例子:
SQL> conn system/test@172.25.13.227/ora11g_p.ytk-thinkpadITPUB个人空间-b3}N^:b7GpsbL
已连接。
5D{L&}U9\3Ok-_(C6PD#~0SQL>
不过在屏幕上直接显式输入密码不是很安全,如果这里省略密码:
SQL> conn system@172.25.13.227/ora11g_p.ytk-thinkpadITPUB个人空间'J
w"E)Qk5n!{X
ERROR:
.Li[$K*y;W9}dkE#R0ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务
ITPUB个人空间
C)Sjv
J3s8WwP
警告:您不再连接到ORACLE。
Oracle连接报错,尝试将整个连接字符串用引号包围,仍然出现错误:
SQL> conn "system@172.25.13.227/ora11g_p.ytk-thinkpad"
$[[
? @p0输入口令:ITPUB个人空间&M/C"k,e1a$M*[
ERROR:
{2a'W1o?;T6L+H0ORA-01017: invalid username/password; logon denied
其实这里的错误是由于Oracle发现@后面还包含了/,因此没有将@后面的字符串作为连接符。
而对于后面的情况,Oracle把整个字符串作为用户名,因此报错。
正确的方式是将引号仅包含@后面的字符:
SQL> conn system@"172.25.13.227/ora11g_p.ytk-thinkpad"ITPUB个人空间}k@9k,z#Z
输入口令:
5gwS E'zsF&Cq0已连接。ITPUB个人空间]T5p*I7tD1`
SQL>
这是在SQLPLUS中使用CONNECT命令的情况,如果是在操作系统命令行下,使用SQLPLUS命令,方法和上面的类似,不过要使用转义符。
先看Windows环境下:
E:\>sqlplus system@172.25.13.227/ora11g_p.ytk-thinkpad
SQL*Plus: Release10.2.0.1.0 - Production on星期一2月11 01:46:56 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
dDf*t0j:{ Q3Ls0ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务
ITPUB个人空间2Q
C0Te/X
请输入用户名:
Z;f*MoL
u
gh0ERROR:
o#wD:Eb~y0ORA-01017:用户名/口令无效;登录被拒绝
ITPUB个人空间@-c-WRnUw(a W!H'j
请输入用户名:ITPUB个人空间2IC-V|e
ERROR:
4|*^'wJ0L*@WE]"O2gs.p0ORA-01017:用户名/口令无效;登录被拒绝
ITPUB个人空间sJj7U7?
SP2-0157:在3次尝试之后无法连接到ORACLE,退出SQL*Plus
E:\>sqlplus system@"172.25.13.227/ora11g_p.ytk-thinkpad"
SQL*Plus: Release10.2.0.1.0 - Production on星期一2月11 01:47:08 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
1j~2T7n-p?lFe y0ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务
ITPUB个人空间8k'Bw%bx K
请输入用户名:
pDn'J1p9Y0qJ)]/a0ERROR:
7E3}xuM&K0ORA-01017:用户名/口令无效;登录被拒绝
w3T u ~0\\ c
`Yc Q"p0请输入用户名:ITPUB个人空间KB8S&ky]V F
ERROR:ITPUB个人空间H#^CZK7WJ
ORA-01017:用户名/口令无效;登录被拒绝
d@]cp3M5^
S0E:\>sqlplus system@"""172.25.13.227/ora11g_p.ytk-thinkpad"""
SQL*Plus: Release10.2.0.1.0 - Production on星期一2月11 01:47:23 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
输入口令:
连接到:
7eQ!Yg"z
wl]0\0Oracle Database11gEnterprise Edition Release11.1.0.6.0 - ProductionITPUB个人空间\bE2l0v
S qf
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
在Linux环境下只是转义符不同:
[oracle@yangtk ~]$ sqlplus system@\"172.25.13.227/ora11g_p.ytk-thinkpad\"
SQL*Plus: Release11.1.0.6.0 - Production on Sun Jan 6 09:30:45 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Enter password:
Connected to:
wr9r}E+K@[0Oracle Database11gEnterprise Edition Release11.1.0.6.0 - Production
tl
p2JjQj0With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>