ORACLE报错 ORA-28001: the password has expired 解决方法

前不久连Oracle数据库时报错了,报错如下:

ORA-28001: the password has expired

百度后才知道:原来密码过期了,Oracle11G在创建用户时密码过期限制是180天(即6个月),如果超过180天用户密码未做修改则该用户无法登录。

这个问题网上看着回答挺头痛的,因为写的不是很规范。于是把网上文章总结了下,总共为6步

第一步:

打开cmd窗口
ORACLE报错 ORA-28001: the password has expired 解决方法_第1张图片

第二步:
输入:sqlplus /nolog

ORACLE报错 ORA-28001: the password has expired 解决方法_第2张图片

第三步:
输入:Conn /as sysdba;

ORACLE报错 ORA-28001: the password has expired 解决方法_第3张图片

第四步:
输入:SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

ORACLE报错 ORA-28001: the password has expired 解决方法_第4张图片

第五步:
输入:ALTER USER 用户名 IDENTIFIED BY 密码; 

密码将要过期或已经过期时可通过上面语句进行修改密码,密码修改后该用户可正常连接数据库。
ORACLE报错 ORA-28001: the password has expired 解决方法_第5张图片

第六步:

修改密码后,会发现该账户会被锁定,这时需要通过如下SQL语句进行解锁

alter user 用户名 account unlock;

ORACLE报错 ORA-28001: the password has expired 解决方法_第6张图片
完成上面五步操作就可以重新连接数据库啦……
ORACLE报错 ORA-28001: the password has expired 解决方法_第7张图片

备注补充:

如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭。

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

如上SQL语句将口令有效期默认值180天修改成了“无限制”。但是出于数据库安全性考虑,不建议PASSWORD_LIFE_TIME值设置成UNLIMITED,建议大家定期修改数据库用户口令。

你可能感兴趣的:(ORACLE,数据库)