上班第一天,就遇上了一键烦心事,打开电脑Navicat连不上数据库了,错误信息为
ORA-28001: the password has expired
字面意思理解就是密码过期了
那么我们现在怎么解决呢?
首先使用root登陆服务器(我这里的服务器用的是centos6.3)
1.我们切换到oracle用户
su - oracle
2.尝试登陆
sqlplus 用户名/密码@数据库名
这个时候会提示让你重新设置密码,
你输入之后,还会让你重复一次确认输入,如果两次输入的密码一致那么就结束了,但是你要把所有的配置文件密码更改为你重新设置的这个密码。如果愿意妥协,那么到这里也就结束了,如果不愿意,请往下看
3.我们可以输入以下命令
3.1首先需要以dba角色登录
sqlplus / as sysdba
3.2查看密码有效期
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
我们可以看到默认的是180天。
3.3更改密码有效期
修改用户密码并设置数据库默认密码为永久有效
alter user zxx identified by zxx; //重新设置一个密码 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ; //更改密码永不过期
4.我尝试使用navicat登陆试试
报错ORA-28000: the account is locked
意思是这个账户被锁定了
于是重新使用dba登陆
sqlplus / as sysdba
输入以下命令,即可解锁账户。正常登陆问题搞定
alter user 要解锁的用户名 account unlock;