SQL> select * from v$version where rownum=1;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

SQL> !cat /etc/issue 

Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)

Kernel \r on an \m



从oracle10g開始,对用户默认登陆失败次数有限制,默认用户的failed_login_attempts设置口令的失败次数为10,假设10次登陆失败。则该用户被锁定:

SQL> select * from dba_profiles where resource_name='FAILED_LOGIN_ATTENMPTS';

未选定行


上面没有选定的行是由于上次被我设置限制了,以下我们设置:

SQL> alter profile default limit failed_login_attempts 2;



配置文件已更改

SQL>  select * from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';



PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT

------------------------------ -------------------------------- -------- ----------------------------------------

DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD 2

MONITORING_PROFILE             FAILED_LOGIN_ATTEMPTS            PASSWORD UNLIMITED

当然也能够无限制:

SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;





配置文件已更改





SQL> select * from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';





PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT

------------------------------ -------------------------------- -------- ----------------------------------------

DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD UNLIMITED

MONITORING_PROFILE             FAILED_LOGIN_ATTEMPTS            PASSWORD UNLIMITED


以下我们模拟当两次失败登陆提示:



[oracle@localhost ~]$ sqlplus /nolog





SQL*Plus: Release 11.2.0.1.0 Production on 星期三 6月 10 18:52:02 2015





Copyright (c) 1982, 2009, Oracle.  All rights reserved.





SQL> conn hr/w

ERROR:

ORA-01017: invalid username/password; logon denied









SQL> conn hr/w

ERROR:

ORA-01017: invalid username/password; logon denied









SQL> conn hr/w

ERROR:

ORA-28000: the account is locked





失败登陆次数的限制有利于数据库的安全,生产库能够使用。



可是怎样知道当前失败多次了呢?



用户的状态信息是通过dba_users来展现的:

SQL> select count(*) from dba_users;



运行计划

----------------------------------------------------------

Plan hash value: 3953741735





-------------------------------------------------------------------------------------------------------

| Id  | Operation                   | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |

-------------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT            |                         |     1 |    86 |    30  (10)| 00:00:01 |

|   1 |  SORT AGGREGATE             |                         |     1 |    86 |            |          |

|*  2 |   HASH JOIN                 |                         |    11 |   946 |    30  (10)| 00:00:01 |

|*  3 |    HASH JOIN                |                         |    11 |   913 |    23  (14)| 00:00:01 |

|*  4 |     HASH JOIN               |                         |    11 |   880 |    20  (10)| 00:00:01 |

|*  5 |      HASH JOIN              |                         |    14 |   994 |    18  (12)| 00:00:01 |

|*  6 |       HASH JOIN OUTER       |                         |    14 |   952 |    10  (10)| 00:00:01 |

|*  7 |        HASH JOIN            |                         |    14 |   546 |     8  (13)| 00:00:01 |

|   8 |         MERGE JOIN CARTESIAN|                         |     1 |    11 |     4   (0)| 00:00:01 |

|*  9 |          TABLE ACCESS FULL  | PROFILE$                |     1 |     9 |     2   (0)| 00:00:01 |

|  10 |          BUFFER SORT        |                         |     1 |     2 |     2   (0)| 00:00:01 |

|  11 |           TABLE ACCESS FULL | PROFNAME$               |     1 |     2 |     2   (0)| 00:00:01 |

|* 12 |         TABLE ACCESS FULL   | USER$                   |    36 |  1008 |     3   (0)| 00:00:01 |

|* 13 |        TABLE ACCESS FULL    | RESOURCE_GROUP_MAPPING$ |     1 |    29 |     2   (0)| 00:00:01 |

|  14 |       TABLE ACCESS FULL     | TS$                     |    20 |    60 |     7   (0)| 00:00:01 |

|* 15 |      TABLE ACCESS FULL      | PROFILE$                |     2 |    18 |     2   (0)| 00:00:01 |

|  16 |     TABLE ACCESS FULL       | USER_ASTATUS_MAP        |     9 |    27 |     2   (0)| 00:00:01 |

|  17 |    TABLE ACCESS FULL        | TS$                     |    20 |    60 |     7   (0)| 00:00:01 |

-------------------------------------------------------------------------------------------------------


看下底层表USER$:

SQL> DESC USER$

 名称                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                               
                                                                             是否为空? 类型

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 USER#                                                                                                          NOT NULL NUMBER

 NAME                                                                                                           NOT NULL VARCHAR2(30)

 TYPE#                                                                                                          NOT NULL NUMBER

 PASSWORD                                                                                                        VARCHAR2(30)

 DATATS#                                                                                                        NOT NULL NUMBER

 TEMPTS#                                                                                                        NOT NULL NUMBER

 CTIME                                                                                                          NOT NULL DATE

 PTIME                                                                                                           DATE

 EXPTIME                                                                                                         DATE

 LTIME                                                                                                           DATE

 RESOURCE$                                                                                                      NOT NULL NUMBER

 AUDIT$                                                                                                          VARCHAR2(38)

 DEFROLE                                                                                                        NOT NULL NUMBER

 DEFGRP#                                                                                                         NUMBER

 DEFGRP_SEQ#                                                                                                     NUMBER

 ASTATUS                                                                                                        NOT NULL NUMBER

 LCOUNT                                                                                                         NOT NULL NUMBER

 DEFSCHCLASS                                                                                                     VARCHAR2(30)

.........

.........

以上的探索思路,来自eygle大师《循序渐进,ORACLE 数据库管理,优化与备份恢复》一书。

LCOUNT非常让人敏感:

SQL> select name,lcount from user$ where name='HR';

NAME                               LCOUNT

------------------------------ ----------

HR                                      0



==========================================================

[oracle@localhost ~]$ sqlplus /nolog





SQL*Plus: Release 11.2.0.1.0 Production on 星期三 6月 10 19:03:40 2015





Copyright (c) 1982, 2009, Oracle.  All rights reserved.





SQL> conn hr/s

ERROR:

ORA-01017: invalid username/password; logon denied



SQL>  select name,lcount from user$ where name='HR';





NAME                               LCOUNT

------------------------------ ----------

HR                                      1





================================================



SQL> conn hr/s

ERROR:

ORA-01017: invalid username/password; logon denied





SQL> select name,lcount from user$ where name='HR';





NAME                               LCOUNT

------------------------------ ----------

HR                                      2





通过实验,我们发现lcount这个字段记录的是失败登陆次数。如登陆成功后,自己主动清空为0

假设再继续研究,则不得不提起之前文章中提起的重要脚本:sql.bsq,读者感兴趣自行研究


版权声明:本文博主原创文章。博客,未经同意不得转载。

The account is locked的更多相关文章

  1. scott/tiger登录时提醒ora-28000 the account is locked

    scott/tiger登录时提示ora-28000 the account is locked在plsql developer中要是以scott/tiger登录时提示ora-28000 the acc ...

  2. oracle报错:ORA-28000: the account is locked

    连接数据库的时候报: ORA-28000: the account is locked 解决方法: cmd-进入命令行 C:\Users\0>sqlplus /nolog SQL*Plus: R ...

  3. 解决ORA-28000: the account is locked

    原文地址:http://yanwushu.sinaapp.com/ora-28000-the-account-is-locked/ 在oracle中.连续十次尝试登陆不成功.那么此账户将会被锁定(lo ...

  4. 一旦ORA-28000: the account is locked用户锁定故障排除

    今天我的同事们反映的问题,测试库的变化password,并改变相关的应用程序中使用password后,其中一个仍然会出现在帐户被锁定,报告ORA-28000: the account is locke ...

  5. Oracle 11g password过期被锁定报道 ORA-28000 the account is locked

    一.触发这个错误的原因及相关因素 是因为oracle11g中默认在default概要文件里设置了"PASSWORD_LIFE_TIME=180天"所导致.在Oracle 11g中是 ...

  6. ORA-28000: the account is locked解决办法

    ORA-28000: the account is locked第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba;第二步:选择myjob, ...

  7. ORA-28000: the account is locked 查哪个具体ip地址造成

    查系统默认的策略,连续验证10次错误帐户即会被锁 SQL> select resource_name, limit from dba_profiles where profile='DEFAUL ...

  8. Oracle案例07——ORA-28000: the account is locked

    遇到这个错误,一般我们想到的是数据库用户被锁,只需要执行用户解锁即可恢复,但这里之所以写出来是因为比较奇葩的一个问题. 昨天下午接同事信息,说一个用户连接报被锁,经过沟通发现其实连接一个ADG的备库作 ...

  9. 出现“ORA-28000:the account is locked”的解决办法

    在Oracle 11g版本中,出于安全的考虑,所有Oracle的默认用户,包括SCOTT用户都被锁定.输入用户名和口令之后,会出现错误“ORA-28000:the account is locked” ...

随机推荐

  1. windows下删除服务的方法

    删除的办法有两个: 办法一: 用sc.exe这个Windows命令 开始——运行——cmd.exe,然后输入sc就可以看到了.使用办法很简单: sc delete "服务名" (如 ...

  2. Oracle用户解锁的三种办法及默认的用户与密码

    ORA-28000: the account is locked-的解决办法 2009-11-11 18:51 ORA-28000: the account is locked 第1步:使用PL/SQ ...

  3. oracle插入例子

    string sql = "insert into EMST_JC_SBXX(XL,SBBM,SBWH,SBMC,CCBM,XNCS,CZXL,ZL,GL,ZZCJ,TCRQ,SYQX,XH ...

  4. cxf的使用及安全校验-02创建简单的客户端接口

    上一篇文章中,我们已经讲了如果简单的创建一个webservice接口 http://www.cnblogs.com/snowstar123/p/3395568.html 现在我们创建一个简单客户端接口 ...

  5. Http Clinet使用

    Http Client是个apache下的一个开源包,用于使用http协议访问服务的java代码编写. Http Client的主要功能: (1)实现了所有 HTTP 的方法(GET,POST,PUT ...

  6. $.fn、$.fn.extend和$.extend的区别

    $.fn $.fn是指jquery的命名空间,加在fn上的方法及属性,会对jquery实例每一个有效. 如:扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后 ...

  7. GDB调试一

    http://blog.csdn.net/haoel/article/details/2881 GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行 ...

  8. 35个jQuery小技巧(转)

    1. 禁止右键点击$(document).ready(function(){    $(document).bind("contextmenu",function(e){     ...

  9. 基于zigbee与tiny4412开发板的环境监测系统

    一.开发板环境搭建 1.tiny4412   linux系统的布置 参考博客:http://www.cnblogs.com/luoxiang/p/4186391.html 二.boa服务器的搭建 下载 ...

  10. NPM下载出错 No compatible version found

    前言 NPM大家都熟,天天都在用.最近,NPM不断出现的下载出错 “npm ERR! Error: No compatible version found” ,已经影响到正常的开发工作,到了不得不解决 ...