Oracle 11g 报错 ORA-28000 the account is locked

一、触发这个错误的原因及相关因素

   是由于oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致,在Oracle 11g中是
存在密码过期问题的。还有可能是因为密码尝试,错误次数超过了默认的次数,数据库账户就会被locaked

二、错误现象:

    用户被锁定之后会报ORA-28000的错误,并提示无法登录到数据库
SQL> conn system/oracle
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.
三、解决方法:

按照如下步骤进行操作:

1、查看用户的proifle是哪个,一般是default:

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

USERNAME                       PROFILE
------------------------------ ------------------------------
SYSTEM                         DEFAULT
2、查看指定概要文件(如default)的密码有效期设置:

SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD 180DAY

 

3、将密码有效期由默认的180天修改成“无限制”:

SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之后不需要重启动数据库,会立即生效。

4、查看密码尝试失败次数

SQL> select resource_name,limit from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';

RESOURCE_NAME LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS 10

5、修改密码尝试失败次数为无限制

 

SQL> alter profile default limit failed_login_attempts unlimited;

配置文件已更改

SQL> select resource_name,limit from dba_profiles where resource_name='FAILED_LO
GIN_ATTEMPTS';

RESOURCE_NAME

LIMIT
-------------------------------- ----------------------------------------
FAILED_LOGIN_ATTEMPTS UNLIMITED

posted @ 2012-12-21 09:48  NW_KNIFE  阅读(2392)  评论(0编辑  收藏  举报