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