ORA-28001: the password has expired
项目测试库连接的时候突然提示了后台错误:``` ORA-28001: the password has expired
于是使用 DBA 用户登录数据库,查看系统连接用户使用的配置文件信息,执行语句:
SELECT profile FROM dba_users WHERE username = 'XXX';
数据库返回结果为 DEFAULT,代表我们数据库使用的配置文件为默认配置。查看该配置下的密码有效期设置,执行语句:
SELECT limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME'
数据库返回结果为 180,代表我们数据库中用户默认的密码有效期为 180 天,如果超过该时限就会提示异常。此时,需要修改用户密码来处理该用户异常,执行语句:
ALTER USER userName IDENTIFIED BY password;
执行成功后,该用户即可恢复正常登录。注:如果感觉有密码限制时间比较麻烦,且数据库无需相关安全限制的话,可以取消该设定,执行语句:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
执行成功后即可,再次执行查询语句:
SELECT limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME'
得到的返回已改为 UNLIMITED。