问题现象:
数据库批量更换了登录密码后,客户端连接数据库特别慢,需要等好长时间才能返回登录结果。提取数据库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;
|