前不久连Oracle数据库时报错了,报错如下:
ORA-28001: the password has expired
百度后才知道:原来密码过期
了,Oracle11G在创建用户时密码过期限制是180天
(即6个月),如果超过180天用户密码未做修改则该用户无法登录。
这个问题网上看着回答挺头痛的,因为写的不是很规范。于是把网上文章总结了下,总共为6步
第一步:
打开cmd窗口
第二步:
输入:sqlplus /nolog
第三步:
输入:Conn /as sysdba;
第四步:
输入:SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
第五步:
输入:ALTER USER 用户名 IDENTIFIED BY 密码;
在密码
将要过期或已经过期
时可通过上面语句进行修改密码
,密码修改后该用户可正常连接数据库。
第六步:
修改密码后,会发现该账户
会被锁定
,这时需要通过如下SQL语句进行解锁
alter user 用户名 account unlock;
完成上面五步操作就可以重新连接数据库啦……
备注补充:
如果想去除180天
的密码生存周期的限制
可通过如下SQL语句将其关闭。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
如上SQL语句将口令有效期默认值180天修改成了“无限制”
。但是出于数据库安全性考虑,不建议PASSWORD_LIFE_TIME
值设置成UNLIMITED
,建议大家定期修改数据库用户口令。