出现这种情况可能是如下两种原因
一、账户密码过期了,需要更新密码了
oracle默认的密码使用时间是180天,超过了账户会被锁住,需要手动修改密码解锁,可以按照如下操作修改为不限期
以下操作需要使用dba账户: 如 sys 登录密码是as sysdba
1)查看用户的proifle是哪个,一般是default
SELECT USERNAME,PROFILE FROM DBA_USERS;
2)查看对应的概要文件(如default)的密码有效期设置
SELECT * FROM DBA_PROFILES D WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';
3)将概要文件(如default)的密码有效期由默认的180天修改成“UNLIMITED(无限制)”(修改后会立即生效)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4)修改过期的密码 关键步骤
(1)修改密码
<span style="color:#333333">alter user 用户名 identified by <原来的密码或新密码> ; </span>
(2)如果账户仍被锁住则需要解锁账户
<span style="color:#4f4f4f">alter user 用户名 account unlock</span>
(3)也可以使用一句话修改密码并且解锁账户
alter user 用户名 identified by <原来的密码或新密码> account unlock;
lock;
二、密码错误次数超过限制,账户被锁定
一把oracle默认密码错误重试次数是10次,超过账户即被锁定
1.查看用户的proifle是哪个,一般是default
SELECT USERNAME,PROFILE FROM DBA_USERS;
2.查看用户的密码错误重试次数
SELECT * FROM DBA_PROFILES;
可以查看当前各种资源的配置,其中就有上一中情况用到的PASSWORD_LIFE_TIME,
不过我们需要修改的是重试次数 FAILED_LOGIN_ATTEMPTS
3.修改重试次数
alter profile default limit FAILED_LOGIN_ATTEMPTS 30;
我们也可以修改为无限制
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
为了安全,不建议这样做
4.解锁账户 关键步骤
alter user 被锁的用户名 account unlock;
如果不想更改错误重试次数,仅仅想解锁账户,只需执行这一步