天天看点

Oracle 11g数据库密码过期解决方法

线上服务突然无法连接Oracle,服务报密码过期错误,正常情况下密码过期有两种情况:

1、由于Oracle中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。

2、由于Oracle中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此问题。

Oracle安装时并未在意密码过期时间,密码默认过期时间设置的是180天,过期后服务无法连接。正常情况下可以通过下面指令登录oracle:

sqlplus username/[email protected] as sysdba;(sqlplus 用户名/密码@数据库本地服务名 as sysdba;)
           

现在特定账号无法使用,在切换到Oracle服务器对应的用户后通过如下方式连接oracle:

sqlplus / as sysdba
           

而后进入查看默认密码过期时间设置:

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
           

通过如下指令修改密码过期时间配置为无时间限制:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
           

最后解锁对应服务使用的账号密码:

alter user username(用户名) identified by oldPassword(原来的密码) account unlock;
           

最终线上服务恢复正常。