记录一次数据库监控软件的用户账号经常被锁定

监控告警账号密码被锁定

对账号进行解锁后,间隔一段时间账号又被锁定了,最后分析的结论是监控软件记录了RAC2节点的账号密码,不一致导致的。

1.对账号进行解锁

SQL>select username,account_status,expiry_date,lock_date from dba_users where account_status!='OPEN';

SQL>ALTER USER XX ACCOUNT UNLOCK;

2.发现账户经常被锁定,对监控用户所在的Profile登录错误密码次数进行调整

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

SQL>SELECT resource_name,limit from dba_profile where profile='DEFAULT';

 PASSWORD_LIFE_TIME密码过期时间是unlimited ,PASSWORD_LOCK_TIME但是密码登录10次则账号被锁定!

由于账户经常被锁定,因此调整账号密码登录失败错误的次数无限制!

SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
其它
-- PASSWORD_LIFE_TIME 180          密码有效保留时间
-- PASSWORD_GRACE_TIME 10         口令过期后继续有效时间
-- PASSWORD_REUSE_TIME 1800       原口令修改后,再次允许使用的时间
-- PASSWORD_REUSE_MAX UNLIMITED   口令可以重新使用之前必须修改的次数
-- FAILED_LOGIN_ATTEMPTS 10        登录失败后,允许尝试登录的次数  
-- PASSWORD_LOCK_TIME   1      登录失败后,超出限制,账户锁定天数
-- PASSWORD_VERIFY_FUNCTION verify_function;  口令修改验证函数
 

3.通过审计查询登录账号错误的机器信息!

SQL>CONN XX/XX 模拟一次错误的账户登录,查询审计基表AUD$,只要开启数据库审计会自动记录用户密码登录错误的信息。

SQL>select max(ntimestamp#)+8/24,sysdate from aud$ where returncode=1017 and ntimestamp#>sysdate-1; 可以通过+8/24 小时调整时间,确认换算为当前sysdate

SQL>SELECT SESSIONID,USERID,USERHOST,COMMENT$TEXT,SPARE1,NTIMESTAMP#+8/24 FROM AUD$ WHERE returncode=1017 and ntimestamp#>sysdate-1 ORDER BY 6;

发现登录失败的都是监控主机,后续查询RAC两台机器,进行测试,发现节点2配置未修改导致的。

原文地址:https://www.cnblogs.com/lvcha001/p/12786934.html