曾经一次发生的过的系统故障,虽然问题解决起来很简单,但是确实值得记录。
当时接到电话说业务系统无法登录,导致整个业务无法办理。
之前是因为好多后台操作人员虽然给他们已经分配了属于自己的用户名和密码,但是部分人还是喜欢通过应用系统连接数据库时所用的用户进行登录,因此修改了该用户的密码。当我登录到数据库服务器检查后发现应用系统所用的sm用户被锁定了,具体处理过程如下:[@more@]
SQL>sqlplus 用户/密码@数据库服务 as sysdba;
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
SQL>select username,profile from dba_users;
SQL> select * from dba_profiles where resource_type='PASSWORD';
PROFILERESOURCE_NAMERESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULTFAILED_LOGIN_ATTEMPTSPASSWORD 10
DEFAULTPASSWORD_LIFE_TIMEPASSWORD UNLIMITED
DEFAULTPASSWORD_REUSE_TIMEPASSWORD UNLIMITED
DEFAULTPASSWORD_REUSE_MAXPASSWORD UNLIMITED
DEFAULTPASSWORD_VERIFY_FUNCTIONPASSWORD NULL
DEFAULTPASSWORD_LOCK_TIMEPASSWORD UNLIMITED
DEFAULTPASSWORD_GRACE_TIMEPASSWORD UNLIMITED
默认情况下,如果用户登录尝试10次以上并连续失败,则会改用被锁定。锁定后就无法该用进行连接数据库,因此导致这次故障。通过如下SQL改变用户锁定状态即可:
SQL> alter user 用户名identified by 密码 account unlock;
另外password_life_time也值得关注:
SQL>select * from dba_profiles s where s.profile='default' and resource_name='password_life_time';
SQL>alter profile default limit password_life_time unlimited;