由更改密码引发的状况..(alter user xxx identified by password)

 

情况描述:
今天更改一个生产上的用户密码
Alter user XXX identified by password;
相应的也在应用层做了更改,配置文件,report平台等等之类的相关地方都做了测试.
木有发生问题,接着在中午吃饭的时候就把相应的更改部署到生产环境上.

这个时候问题就来了,因为客户端有一部分的功能模块是把密码写进程序里头的,其余的模块都分得很清晰,
密码配置文件在APP Server上,
这里就需要他们update程序,只要关闭程序再打开就自动升级了,
(不像原来自己写的C
/S程序,长连接,可以直接T掉所有用户~)
这个升级的过程中,问题就来了,有些用户,还未关闭程序,他们继续使用,
如果有使用那个模块(把密码写进程序里的)的话,就会造成连接数据库失败,
并且继续连接,继续失败,失败次数多了,这个数据库的user就自动被lock起来了.
这个失败N次后锁定的参数在dba_profiles表里的limit字段体现.

SYS
@PPTD(3.49)> select * from dba_profiles where
resource_name
='FAILED_LOGIN_ATTEMPTS';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
MONITORING_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED


真囧啊,中午原本认为没啥问题了,就去吃饭了,结果一回来发现部分用户hang在那里了,user被lock住了,好纳闷,
解锁后,并修改为失败后不锁定 unlimited,解决了这个问题.

SYS
@PPTD(7.15)> alter user 用户 account unlock;
SYS
@PPTD(7.15)> ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
查看帐户的锁定情况

SYS
@PPTD(7.15)> select username,account_status from dba_users;

USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS
OPEN
SYSTEM
OPEN
DBSNMP
OPEN
SYSMAN
OPEN
KEYUSER
OPEN
OUTLN EXPIRED
& LOCKED
MDSYS EXPIRED
& LOCKED
ORDSYS EXPIRED
& LOCKED
EXFSYS EXPIRED
& LOCKED
DMSYS EXPIRED
& LOCKED
WMSYS EXPIRED
& LOCKED
CTXSYS EXPIRED
& LOCKED
ANONYMOUS EXPIRED
& LOCKED
XDB EXPIRED
& LOCKED
ORDPLUGINS EXPIRED
& LOCKED
SI_INFORMTN_SCHEMA EXPIRED
& LOCKED
OLAPSYS EXPIRED
& LOCKED
SCOTT EXPIRED
& LOCKED
ORACLE_OCM EXPIRED
& LOCKED
TSMSYS EXPIRED
& LOCKED
MDDATA EXPIRED
& LOCKED
DIP EXPIRED
& LOCKED


 

posted @ 2010-07-20 19:19  Gerrard  阅读(3216)  评论(1编辑  收藏  举报