1 错误出现的现象是ora-28000 the account is locked
,既用户无法登录。
2 原因:出现这种错误的原因为由于用户多次登录,无法登陆成功,超过了数据库允许登录的次数,所以导致用户被锁定,这种机制也是对数据库的一种保护,提升了数据库的安全性。
3 解决的办法如下:
(1)在dos窗口中输入命令sqlplus /nolog
,截图如下:
(2)点击回车之后输入命令conn /as sysdba出现的结果为:
(3)输入命令desc dba_profiles
截图如下:
(4)输入命令select resource_name,limit from dba_profiles where resource_name = 'FIELD_LOGIN_ATTEMPTS'
;截图如下:
(5)然后解锁用户,执行命令:alter user 用户名 account unlock
;
(6) 修改FILED_LOGIN_ATTEMPTS
字段的值,为unlimited,既无论输入多少次都不会被锁定。但此时,数据的安全性将降低
可以执行命令:alter profile default limit failed_login_attempts unlimited
;截图如下:
(7) 此时可以查看failed_login_attempts的值, 执行select resource_name,limit from dba_profiles where resource_name = 'FAILED_LOGIN_ATTEMPTS'
;截图如下:
(8)到此为止,用户已经被解除锁定。
PS:下面看下[Oracle11g] ORA-28000: the account is locked 的解决办法
用scott账户在PL/SQL中连接Oracle的时候,提示ORA-28000: the account is locked。
解决方案:
第一步:在%ORACLE_HOME%NETWORK\ADMIN目录中找到sqlnet.ora文件,其中%ORACLE_HOME%为oracle的安装路径。
我的为:D:\app\haojiec\product\11.2.0\dbhome_1\NETWORK\ADMIN,打开sqlnet.ora,在文件中NAMES.DIRECTORY_PATH 和 ADR_BASE两行中间加一行:SQLNET.AUTHENTICATION_SERVICES= (NTS),保存。
第二步:打开DOS窗口,输入sqlplus sys/Oracle11g as sysdba;
其中 sys为账户,Oracle11g为我的密码。成功则会有如下显示:
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>
第三步:
SQL> conn sys/Oracle11g as sysdba; Connected.
第四步:
SQL> alter user scott account unlock; User altered. SQL> commit; Commit complete. SQL> conn scott/tiger //请输入新密码,并确认后OK Password changed Connected.
这时再到plsql developer里面以scott/tiger登录就可以了。