oracle错误密码导致library cache lock

问题现象:

         数据库批量更换了登录密码后,客户端连接数据库特别慢,需要等好长时间才能返回登录结果。提取数据库awr,发现大量的library cache lock事件。

问题分析:

1、  由于数据库更换密码之后,有部分应用没有及时更换为正确密码,应用持续的以错误密码重试。

2、  Oracle 11g中增加了用户密码错误延迟登录。用于防止通过猜测口令攻击。

问题解决:

         首先,每个用户设置有资源限制。

SQL> select username,account_status,profile from dba_users where username = 'WJF';

USERNAME                      ACCOUNT_STATUS                        PROFILE

------------------------------ -------------------------------- ------------------------------

WJF                            OPEN                             DEFAULT

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

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 UNLIMITED

DEFAULT                          PASSWORD_LIFE_TIME               PASSWORD 180

DEFAULT                          PASSWORD_REUSE_TIME          PASSWORD UNLIMITED

DEFAULT                          PASSWORD_REUSE_MAX           PASSWORD UNLIMITED

DEFAULT                          PASSWORD_VERIFY_FUNCTION       PASSWORD NULL

DEFAULT                          PASSWORD_LOCK_TIME             PASSWORD 1

DEFAULT                          PASSWORD_GRACE_TIME         PASSWORD 7

16 rows selected.

3、  关闭密码延迟验证特性(需要重启)

------关闭

alter system set event ="28401 TRACE NAME CONTEXT FOREVER, LEVEL 1" scope=spfile;

-----开启

alter system set event ="28401 TRACE NAME CONTEXT OFF" scope=spfile;

4、  数据库登录审计(默认开启)

-----查询登录密码错误审计信息

select sessionid,

       userid,

       userhost,

       comment$text,

       spare1,

       to_char(ntimestamp# + 1 / 3, 'yyyy-mm-dd hh24:mi:ss'),

       returncode

  from sys.aud$ a

 where a.ntimestamp# > sysdate - 3

   and returncode = 1017    ----错误码1017代表错误密码登录

 order by ntimestamp# desc;

猜你喜欢

转载自blog.csdn.net/wang1016612067/article/details/78766162