这个毛病特别稀奇,用户好端端的就登陆不上!根据提示 The account is locked 这账户被锁定,啥情况,我们登陆sysdba看一看

    格式:

        select account_status,lock_date,profile from dba_users where username='USERNAME';

    解析:

        这句话查询字段account_status(账户状态),lock_date(锁数据),profile配置文件字段,然后dba_users查看所有用户状态的视图表,指定username你的账户名就可以看状态

        查看这个状态的时候发现是LOCKED(TIMED),锁(时间)以前没见过这种状态,我就百度了一下,系统默认配置密码登录(错误登录)登录10次,所以就给个时间锁,知道了这些就好办了,我感觉输入10次才给锁太不安全了!

我想把他改成3次,我们首先要知道怎么查看这个系统默认设置,如下

    格式:

        select resource_name,resource_type,limit from dba_profiles where profile='DEFAULT';

    解释:

        查询资源名字,类型,限制源表是dba_profiles视图(dba配置文件),指定default,这样就出来了!

    格式:

        alter profile default limit FAILED_LOGIN_ATTEMPTS unlimit(无限次);--本人为了安全设置了3次(非生产环境下)

   解释:

      翻译英语  改变配置文件默认的限制 登录失败尝试 为3次!很好理解无难度

这时候我们就可以给用户解锁了

    格式:

       alter user scott account unlock;--改变用户scott账户解锁

    这时候我们在dba_users视图查看发现已经解锁,登录成功,我还特意尝试了3次失败登录,报错ORA-28000看来还是很有效果!这时候问题解决希望对对大家有一些帮助

补录:

    因为我其实查看了show parameter resource,这时候我惊奇发现没有开启resource limit,values --> false,这里资源显示没有开启,却10次生效,为什么??

    查阅一些资料和了解,FAILED_LOGIN_ATTEMPTS 不为受resource limit的约束,修改用alter profile是用户口令管理,变量是资源管理,口令并不受RESOURCE LIMIT的限制,一些教材中把profile分为管理密码与资源两大类我也查实了。

    引用网友的帖子感觉特别好 http://www.php.cn/mysql-tutorials-135104.html 比我讲解详细 思路明确 特别引用请大家参考 本人看了也有很大知识面提升

    最后想查看Oracle中用户已经登录失败几次了?

        格式:

            select lcount from user$ where name='USERNAME';--就可以看到统计信息

        格式:

            SQL> audit session whenever not successful;

            审计已成功。

            SQL> set linesize 1000;

            SQL> col userhost for a20;

            SQL> col COMMENT$TEXT for a30;

            SQL> col SPARE1 for a20;

            SQL> col NTIMESTAMP# for a35

            SQL> select sessionid,userid,userhost,comment$text,spare1,to_char(ntimestamp#+1/3,'yyyy-mm-dd hh24:mi:ss') from aud$ where returncode=1017 order by ntimestamp# desc;

            user$与aud$的信息非常有用!!