首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一次ORA-28000: the account is locked用户锁定的问题排查

    今天同事反映一个问题,某个测试库修改了密码,并改了相关应用使用的密码后,仍出现一会账户就被锁住,报ORA-28000: the account is locked的错误。 检查过程: 1. 查看资源限制生效参数 SQL> show parameter resource NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ resource_limit                       boolean     FALSE FALSE表示未启动资源限制。 2. 查看该用户所用的PROFILE SQL> select resource_name, limit from dba_profiles where profile='DEFAULT'; RESOURCE_NAME                    LIMIT -------------------------------- ---------------------------------------- COMPOSITE_LIMIT                  UNLIMITED SESSIONS_PER_USER                UNLIMITED CPU_PER_SESSION                  UNLIMITED CPU_PER_CALL                     UNLIMITED LOGICAL_READS_PER_SESSION        UNLIMITED LOGICAL_READS_PER_CALL           UNLIMITED IDLE_TIME                        UNLIMITED CONNECT_TIME                     UNLIMITED PRIVATE_SGA                      UNLIMITED FAILED_LOGIN_ATTEMPTS            10 PASSWORD_LIFE_TIME               UNLIMITED PASSWORD_REUSE_TIME              UNLIMITED PASSWORD_REUSE_MAX               UNLIMITED PASSWORD_VERIFY_FUNCTION         NULL PASSWORD_LOCK_TIME               1 PASSWORD_GRACE_TIME              7 其中FAILED_LOGIN_ATTEMPTS表示连续登陆失败的次数,这里表示连续登陆10次失败则锁定用户。 3. 解除用户锁定ALTER USER pss3 ACCOUNT UNLOCK;后观察现象 SQL> select name, lcount from user$ where name='PSS3'; NAME                               LCOUNT ------------------------------ ---------- PSS3                                   10 不到一分钟,登陆失败次数就到10次了。 初步结论: 可能有应用仍使用旧的密码登陆,登陆失败后重复尝试,直到10次为止。 但问题就来了: 1. FAILED_LOGIN_ATTEMPTS设置为10次,但未启动resource_limit,为什么还受到10次的限制呢? 2. 怎么知道还有哪些应用由于未修改密码导致ORA错误呢? 问题1:FAILED_LOGIN_ATTEMPTS设置为10次,但未启动resource_limit,为什么还受到10次的限制呢? 这篇MOS文章160528.1(Profile Limits (Resource Parameter(s)) Are Not Enforced / Do Not Work)文章说了一些: After creating a new profile or altering an old one to limit the following profile resources there is no change:  SESSIONS_PER_USER CPU_PER_SESSION CPU_PER_CALL CONNECT_TIME IDLE_TIME L

    03

    Oracle配置DCD避免会话被防火墙强制断开

    有反馈应用测试连接Oracle数据库的会话半小时左右未做操作就会被中断,报错ORA-3113,询问数据库是否有这样的超时设置,能否取消掉这个限制? 登上环境查看监听日志发现连接的IP和数据库IP不是同一网段,故询问中间是否有防火墙设备,得到肯定的答复后,再结合实际的现象,基本也就确认是由于防火墙默认强制断开一段时间内(这里也就是半小时)都是空闲状态的会话,然后会话再做操作时就会发现原连接已经被断开,报错ORA-3113,然后只能重连。 防火墙涉及其他部门管理,协调比较麻烦。还好Oracle有DCD(Dead Connection Detection)这个功能特性,主要就是设置一个时间比如10分钟,那么每隔10分钟Oracle就会发一个空包给连接会话的客户端,防火墙发现会话变为活跃就会重新计时,这样也可以间接解决这个问题。

    02
    领券