ORA-28000: The account is locked(账户已锁定)
Oracle含义
所连接的数据库用户账户已被锁定,因此登录失败。
原因
超出了 profile 中的 FAILED_LOGIN_ATTEMPTS 限制(多次输错密码),或账户被 DBA 手动锁定(ALTER USER ... ACCOUNT LOCK)。因登录失败而产生的锁定会在 PASSWORD_LOCK_TIME 之后自动解除。注意:PASSWORD_LIFE_TIME 到期不会锁定账户;账户会变为 EXPIRED / EXPIRED(GRACE),并返回 ORA-28001/ORA-28002。
解决方法
检查账户状态:SELECT username, account_status, lock_date FROM dba_users WHERE username = 'APP_USER'。解锁:ALTER USER app_user ACCOUNT UNLOCK。为防止再次发生,找出登录失败的来源,必要时检查 profile 中的 FAILED_LOGIN_ATTEMPTS。如果密码已过期,为其设置新密码。
同一数据库的其他条目
- ORA-00257Archiver error. Connect internal only, until freed(归档进程错误。在释放之前仅允许内部连接)
- ORA-01000Maximum open cursors exceeded(超出打开游标的最大数)
- ORA-00018Maximum number of sessions exceeded(超出最大会话数)
- ORA-01578Oracle data block corrupted (file #, block #)(Oracle 数据块损坏(文件号,块号))
- ORA-01722Invalid number(无效数字)
- ORA-02049Timeout: distributed transaction waiting for lock(超时:分布式事务正在等待锁)
- enq: TX - row lock contention等待:会话被另一事务持有的行级锁阻塞