ORA-28001: the password has expired

  2016-07-30 12:07

ALM11 突然不能进入登录界面了,还显示一堆错误信息,仔细分析日志后,发现Oracle提示错误消息ORA-28001: the password has expired。
经调查是由于Oracle 11G的新特性所致, Oracle 11G创建用户时缺省密码过期限制是180天, 如果超过180天用户密码未做修改则该用户无法登录。
可通过"

SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
"语句查询密码的有效期设置,LIMIT字段是密码有效天数。
1、针对密码已经过期的
1.1可通过"ALTER USER 用户名 IDENTIFIED BY 密码 ;"语句进行修改密码,密码修改后该用户可正常连接数据库。
(小插曲,执行ALTER USER qcsiteadmin_db IDENTIFIED BY tdtdtd ;报“ora-00988:口令缺失或无效”错误,修改密码太简单(常规数字开头)或与源密码一致,这个Oracle默认是不允许的,需要加英文状态下的双引号将密码内容引起来,再执行就好,如ALTER USER qcsiteadmin_db IDENTIFIED BY "tdtdtd" ;。
(找到ALM11所有项目的数据库用户名,全部重新修改密码(个人比较懒,修改成源密码一致的,会省掉很多其他配置与后期维护工作),ALM11服务重新启动,就又看到了亲切的bug管理界面了。)
 
(修改 system/sysman/dbsnmp 这三个的密码后,才能进em界面。)
1.2为避免后期还会过期,修改期限可通过"ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;"语句将口令有效期默认值180天修改成“无限制”。
 
2、针对密码将要过期的
直接以dba用户登录,前提是dba用户至少有一个没有过期,执行"ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;"语句将口令有效期默认值180天修改成“无限制”。
 
(出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,建议客户定期修改数据库用户口令。)
 
你好,游客!(点击更改信息)

您的电子邮件不会被公布,带*为必填。


  • *

    code

      正在提交中,请稍候...
      评论提交成功
    回复 的评论,点击取消回复。