最近因为工作的需要,需要将局域网内远程机器上的一个生产数据库导到本地环境。由于一直使用pl/sql工具连接局域网内生产数据库,本地的oracle数据库安装时的系统管理员和scott账户、密码已经记不清楚了(ps:试了好多次都告我密码无效),所以就在网上查了一些关于oracle用户密码修改的问题:
第一种情况:忘记除SYS、SYSTEM用户之外的用户的登录密码。这时候解决办法就比较简单了,可以重置用户的密码。
解决办法:
在Windows环境的打开命令提示符窗口执行以下命令连接到orcl(ps:oracle的服务和监听程序已经正常启动)
C:\Users\Administrator>set oracle_sid=orcl
C:\Users\Administrator>SQLPLUS "/as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 9月 17 14:16:01 2015
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> conn sys/sys as sysdba;
已连接。
SQL>alter user user_name identified by "newpassword"
用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA;
使用如下语句修改用户的密码:ALTER USER user_name IDENTIFIED BY "newpassword";(eg:alter scott identified by "123456")
第二种情况:忘记SYS用户,或者是SYSTEM用户的密码。这种情况还是不是最糟糕的情况,还有办法可以解决。
解决办法:
如果是忘记SYSTEM用户的密码,可以用SYS用户登录。然后用ALTER USER 命令修改密码:CONN SYS/PASS_WORD AS SYSDBA;
ALTER USER SYSTEM IDENTIFIED BY "newpass";
如果是忘记SYS用户的密码,可以用SYSTEM用户登录。然后用ALTER USER 命令修改密码。CONN SYSTEM/PASS_WORD ;
ALTER USER SYSTEM IDENTIFIED BY "newpass";
第三种情况:如果SYS,SYSTEM用户的密码都忘记或是丢失。这视情况就有点糟糕了,一般比较触头让人。一开始还怀疑是不是能找到修改sys/system 用户的方法,后来查到有解决办法就有点按耐不住的兴奋!!!!
解决办法:
可以使用ORAPWD.EXE 工具修改密码。
开始菜单->运行->输入‘CMD’,打开命令提示符窗口,输入如下命令:
orapwd file=D:\oracle10g\database\pwdctcsys.ora password=newpass
这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下的\database目录下。
这个密码是修改sys用户的密码,除sys其他用户的密码不会改变。修改了sys用户密码以后就可以按照情况二或情况一的方式修改其他用户的密码,当时修改完很高兴也有点兴奋!!!!!!
不过Oracle提供了两种验证方式,一种是OS验证,另一种密码文件验证方式,如果是第一种方式用以下方法修改密码:
sqlplus /nolog;
connect / as sysdba
alter user sys identified by ;
alter user system identified by ;
如果是第二种方法就用上述方式修改,也可以下方法修改密码:
orapwd file=pwdxxx.ora password=你设定的新密码 entries=10
设定完后,重新启动服务,再次登陆就可以了。
终于搞定了这个问题,折腾了整整一个上午,虽然一开始很蒙圈(因为数据库一直是我的弱项)但是后来请教了一个朋友和上网查找办法后最终还是解决了。感觉蛮不错的!!!!!哈哈