ORA-28001: the password has expired(密码已过期)
Oracle含义
所连接的数据库用户的密码已过期,因为其概要文件的 PASSWORD_LIFE_TIME 已到期。在修改密码之前无法打开任何会话。
原因
用户概要文件中定义的密码有效期已结束,宽限期也已过。在 Oracle 11g 及更高版本中,DEFAULT 概要文件中的密码每 180 天过期一次;这尤其会给长期使用的应用服务账户造成意外中断。
解决方法
修改密码:ALTER USER app_user IDENTIFIED BY new_password; 为避免应用账户反复出现此问题,使用密码不过期的概要文件:CREATE PROFILE app_profile LIMIT PASSWORD_LIFE_TIME UNLIMITED; 然后 ALTER USER app_user PROFILE app_profile; 在过期前发出告警的监控也很有用。通过 DBA_USERS 中的 ACCOUNT_STATUS 检查状态。
同一数据库的其他条目
- ORA-19809limit exceeded for recovery files(恢复文件超出限制)
- ORA-00376file N cannot be read at this time(文件 N 当前无法读取)
- ORA-12520TNS:listener could not find available handler for requested type of server(监听程序找不到所请求服务器类型的可用处理程序)
- ORA-38029object statistics are locked(对象统计信息已锁定)
- ORA-00845MEMORY_TARGET not supported on this system(此系统不支持 MEMORY_TARGET)
- ORA-27102out of memory(内存不足)
- ORA-04030out of process memory when trying to allocate N bytes(尝试分配 N 字节时进程内存不足)