由于oracle数据库服务器在内网,外网不能访问。故需要先登录到一台外网能访问的地址,再从该地址ssh到数据库服务器地址
操作如下:
ssh -l root -p 22 192.168.1.5;
如果22端口号没开,测试23端口号是否开启(我们这里假定23端口开启了);
1.telnet 192.168.1.5
2.输入用户名和密码(这里我们要知道远程服务器普通用户名密码,例如oracle,test等);
注意:一般情况下telnet到远程服务器,不能用root帐户登录;报错为 login incorrect
3.su -oracle,输入oracle用户密码,我的是和root相同。
4.sqlplus /nolog;
5.connect/as sysdba;
6.alter user 用户名 identified by 新密码; //密码中含有特殊字符,如@!#,需要将密码加上双引号
7.ALTER USER 用户名 ACCOUNT UNLOCK;
8.commit;
注意:如果没有7,8的话,你的操作就会导致该用户名被锁定。
报错ORA-28000: the account is locked
如果只有第七步,没有第八步,在你退出SQLPlUS之前好用,
退出之后就会同样报错ORA-28000: the account is locked
只有确认提交之后才能生效。
密码中含有特殊字符解决方法
当Oracle数据库用户的密码含特殊字符如 @ 时,直接使用正常的密码输入,由于oracle将@后的字符解析为网络服务名而导致登陆失败
如下演示 用户名为:wang密码为:oracle@1网络服务名为:sun 的情况:
Linux平台:'wang/"oracle@1"'@sun --1个双引号扩密码,1个单引号扩 用户名+密码,即: '用户名/"密码"'@服务名
没加引号前,报错
[11:41:14oracle@dvd adump]$sqlplus wang/oracle@1@sun
SQL*Plus: Release 11.2.0.1.0 Production on Tue Oct 30 11:41:24 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12532: TNS:invalid argument
加上引号后,正常连接
[11:42:24oracle@dvd adump]$sqlplus 'wang/"oracle@1"'@sun --1个双引号扩密码,1个单引号扩 用户名+密码,即: '用户名/"密码"'@服务名
SQL*Plus: Release 11.2.0.1.0 Production on Tue Oct 30 11:42:25 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the OLAP and Data Mining options
wang@SUN>
Windows 平台:wang/"""oracle@1"""@sun--3个双引号扩密码,即: 用户名/"""密码"""@服务名
没加引号前,报错
C:\Users\wanglei.ITADMIN>sqlplus wang/oracle@1@sun
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 10月 30 13:20:00 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符
请输入用户名:
加上引号后,正常连接
C:\Users\wanglei.ITADMIN>sqlplus wang/"""oracle@1"""@sun--3个双引号扩密码,即: 用户名/"""密码"""@服务名
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 10月 30 13:20:30 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the OLAP and Data Mining options