近期客户要求将基于华丹开发平台开发的业务系统所涉及到的oracle数据库用户密码全部更新到10位以上强密码。

更改后,平台直连的用户访问正常。但是提供给第三方访问(不在同一局域网网段)的用户用修改后的密码连接后,帐户立即被锁定,报错:ORA-28000 the account is locked。解锁后,一访问又立即被锁定。

此时,可以用管理员帐户sys登录,执行如下语句查看用户锁定状态。

select username,account_status,lock_date from dba_users

分析可能是因为连接超时或尝试连接失败次数超限导致被锁定。

此时,通过执行命令:

alter profile default limit FAILED_LOGIN_ATTEMPTS UNLIMITED

解锁并设置远程登录尝试次数。

成功后,尝试给用户解锁连接,再没有被锁定,但是连接时间明显较长(可能就是造成帐户被锁原因),而且登录尝试次数设成无限后,会降低系统安全性,一般不推荐。

所以将其改回默认(10次),或稍大,如30次:

alter profile default limit FAILED_LOGIN_ATTEMPTS 30

修改后,尝试重启oracle服务,问题解决。

同时也要注意一下该数据库帐户是否被其它应用系统应用,没改密码,造成频繁登录失败造成被锁定。

结论:修改oracle用户密码后,如果遇到连接时间较长,或是连接即被锁定的情况,可以在修改完密码后立即重启动一下oracle服务解决问题。