oracle用户LOCKED(TIMED)原因及解决

本文详细解析了Oracle数据库中账户因多次登录失败被锁定的原因,展示了如何通过SQL查询定位问题,并提供了具体的解锁步骤及预防措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:账号被锁定
SQL> select username,account_status from dba_users where username in('APP_BASE_NORTH','NORTH_STATS');

USERNAME               ACCOUNT_STATUS
------------------------------ --------------------------------
APP_BASE_NORTH               LOCKED(TIMED)
NORTH_STATS               LOCKED(TIMED)


查看是什么原因导致?

--查看用户使用的pofile
SQL> select profile from dba_users where username in('APP_BASE_NORTH','NORTH_STATS');

PROFILE
------------------------------
PF_NORTH_STATS
PF_APP_BASE_NORTH

--查看每个profile里具体的资源限制内容
set line 300
select * from dba_profiles where profile ='PF_NORTH_STATS';

SQL> set line 200
SQL> select * from dba_profiles where profile ='PF_NORTH_STATS';

PROFILE                RESOURCE_NAME                RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
PF_NORTH_STATS           COMPOSITE_LIMIT                KERNEL     DEFAULT
PF_NORTH_STATS           SESSIONS_PER_USER            KERNEL     100
PF_NORTH_STATS           CPU_PER_SESSION                KERNEL     DEFAULT
PF_NORTH_STATS           CPU_PER_CALL                    KERNEL     DEFAULT
PF_NORTH_STATS           LOGICAL_READS_PER_SESSION    KERNEL     DEFAULT
PF_NORTH_STATS           LOGICAL_READS_PER_CALL        KERNEL     DEFAULT
PF_NORTH_STATS           IDLE_TIME                    KERNEL     DEFAULT
PF_NORTH_STATS           CONNECT_TIME                    KERNEL     DEFAULT
PF_NORTH_STATS           PRIVATE_SGA                    KERNEL     DEFAULT
PF_NORTH_STATS           FAILED_LOGIN_ATTEMPTS        PASSWORD DEFAULT
PF_NORTH_STATS           PASSWORD_LIFE_TIME            PASSWORD DEFAULT

PROFILE                RESOURCE_NAME                RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
PF_NORTH_STATS           PASSWORD_REUSE_TIME            PASSWORD DEFAULT
PF_NORTH_STATS           PASSWORD_REUSE_MAX            PASSWORD DEFAULT
PF_NORTH_STATS           PASSWORD_VERIFY_FUNCTION     PASSWORD DEFAULT
PF_NORTH_STATS           PASSWORD_LOCK_TIME            PASSWORD DEFAULT
PF_NORTH_STATS           PASSWORD_GRACE_TIME            PASSWORD DEFAULT

16 rows selected.


--因为指定的limit的值都是default,查看default限定的值详情
select * from dba_profiles where profile ='DEFAULT';


SQL> select * from dba_profiles where profile ='DEFAULT';

PROFILE                RESOURCE_NAME                RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                COMPOSITE_LIMIT                KERNEL     UNLIMITED
DEFAULT                SESSIONS_PER_USER            KERNEL     UNLIMITED
DEFAULT                CPU_PER_SESSION                KERNEL     UNLIMITED
DEFAULT                CPU_PER_CALL                    KERNEL     UNLIMITED
DEFAULT                LOGICAL_READS_PER_SESSION    KERNEL     UNLIMITED
DEFAULT                LOGICAL_READS_PER_CALL        KERNEL     UNLIMITED
DEFAULT                IDLE_TIME                    KERNEL     UNLIMITED
DEFAULT                CONNECT_TIME                    KERNEL     UNLIMITED
DEFAULT                PRIVATE_SGA                    KERNEL     UNLIMITED
DEFAULT                FAILED_LOGIN_ATTEMPTS        PASSWORD 10
DEFAULT                PASSWORD_LIFE_TIME            PASSWORD UNLIMITED

PROFILE                RESOURCE_NAME                RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                PASSWORD_REUSE_TIME            PASSWORD UNLIMITED
DEFAULT                PASSWORD_REUSE_MAX            PASSWORD UNLIMITED
DEFAULT                PASSWORD_VERIFY_FUNCTION     PASSWORD NULL
DEFAULT                PASSWORD_LOCK_TIME            PASSWORD UNLIMITED
DEFAULT                PASSWORD_GRACE_TIME            PASSWORD UNLIMITED

16 rows selected.

可以看到FAILED_LOGIN_ATTEMPTS的值为10,PASSWORD_LIFE_TIME为UNLIMITED
说明用户没有过期限制,但是用户尝试登录数据库的次数最大限制为10次,当达到10次以后,该用户的帐户就被锁定,当锁定时间超过了PASSWORD_LOCK_TIME设置的时间后,用户会自动解锁(当然在没有进行登录时状态不会发生变化,只有试图登录时状态才会发生变化)。但是该用户默认的PASSWORD_LOCK_TIME为UNLIMITED,所以需要DBA手动解锁。

--解决方式
alter user APP_BASE_NORTH account unlock;
alter user NORTH_STATS account unlock;

--解锁后查看状态为open
select username,account_status from dba_users where username in('APP_BASE_NORTH','NORTH_STATS');

--为了避免在出现此类问题,可以将FAILED_LOGIN_ATTEMPTS设置为UNLIMITED
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#慧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值