自己有一台oracle数据库,发现几天不登录,数据库用户就无法登录,提示用户被锁,今天下定决心终于解决它,现在将解决过程写出与大家一起分享。

如果用户被锁,首先应该要知道他是什么时候被锁了。用oracle用户登录机器,执行

1.sqlplus / as sysdba ,以DBA用户登录,这时千万不要先解锁,而是要先查一下上次被锁的时间。

2.

--修改当前会话的日期显示格式

alter session set nls_date_format = 'yyyy-MM-dd hh24:mi:ss';

--查询被锁定账号的锁定时间

select username,lock_date  from dba_users where username like 'SJCKBILL';

查出来时间为:2012-05-17 15:44:21

3.找到 listener.log文件,如果不知道这个文件放到哪里,就只能用

find / -name listener.log

查到在/oracle/app/oracle/product/10.2.0/network/log/listener.log

4.进入这个目录

发现文件很大,如果用cat 显示太慢,执行 tail -20 listener.log

17-MAY-2012 15:44:21 * (CONNECT_DATA=(SID=storage)(CID=(PROGRAM=E:\Program Files\plsql developer\plsqldev.exe)(HOST=COGNOS-SERVER)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=134.134.XX.XX)(PORT=3761)) * establish * storage * 0

17-MAY-2012 15:44:32 * (CONNECT_DATA=(SID=storage)(CID=(PROGRAM=E:\Program Files\plsql developer\plsqldev.exe)(HOST=COGNOS-SERVER)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=134.134.XX.XX)(PORT=3762)) * establish * storage * 0

17-MAY-2012 15:44:38 * (CONNECT_DATA=(SID=storage)(CID=(PROGRAM=E:\Program Files\plsql developer\plsqldev.exe)(HOST=COGNOS-SERVER)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=134.134.XX.XX)(PORT=3768)) * establish * storage * 0

17-MAY-2012 15:45:54 * (CONNECT_DATA=(SID=storage)(CID=(PROGRAM=E:\Program Files\plsql developer\plsqldev.exe)(HOST=COGNOS-SERVER)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=134.134.XX.XX)(PORT=3794)) * establish * storage * 0

发现那个时间段,是=134.134.XX.XX用 plsql 连续连接4次,问了这个人,才知道是不知道密码,于是连接了4次,导致用户被锁。

6.  总结

从上边可以看到,造成Oracle的账号被锁定的原因是由于误输入用户名和密码导致,所以造成了该账号登录Oracle经常失败,由于我们配置了Oracle的最大允许登录错误次数为10,所以超过10次错误后账号将被锁定。

select * from dba_profiles where resource_name like 'FAILED_LOGIN_ATTEMPTS%';

查到 DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10

为10 次。

方法二:

捕捉尝试登陆失败的用户信息

最近一个应用的用户被锁,查了一下发现在profile里设置了100次尝试登陆的限制,为了定位具体尝试登陆的时间及ip等相关信息,需要写一个trigger进行捕捉,以下来自网上:

create or replace trigger logon_denied_to_alert

after servererror on database

declare

message   varchar2(120);

IP        varchar2(15);

v_os_user varchar2(80);

v_module  varchar2(50);

v_action  varchar2(50);

v_pid     varchar2(10);

v_sid     number;

begin

IF (ora_is_servererror(1017)) THEN

if sys_context('userenv', 'network_protocol') = 'tcp' then

IP := sys_context('userenv', 'ip_address');

else

select distinct sid into v_sid from sys.v_$mystat;

SELECT p.SPID

into v_pid

FROM V$PROCESS p, V$SESSION v

WHERE p.ADDR = v.PADDR

AND v.sid = v_sid;

end if;

v_os_user := sys_context('userenv', 'os_user');

dbms_application_info.READ_MODULE(v_module, v_action);

message := to_char(sysdate, 'Dy Mon dd HH24:MI:SS YYYY') ||

' logon denied from ' || nvl(IP, v_pid) || ' ' || v_os_user ||

' with ' || v_module || ' ' || v_action;

sys.dbms_system.ksdwrt(2, message);

end if;

end;

/

当有用户尝试登陆失败后,alert日志里记录了如下信息:

Mon Feb 22 03:50:13 2010 logon denied from 192.168.80.19 oracle with (TNS V1-V3)

该trigger只是记录登陆失败的信息,正常成功登陆不会记录。

oracle数据库频繁被锁,oracle数据库用户频繁被锁相关推荐

  1. oracle数据库频繁被锁,Oracle数据库账号频繁被锁定的原因排查

    在Oracle数据库操作中,登录Oracle账号时提示失败,而且Oracle账号频繁被锁定.造成此故障的原因是什么呢?本文就介绍了这一过程,通过逐步排查我们就能找到该故障的原因了. 下面记录下查找这个 ...

  2. Oracle 9i 10g编程艺术-深入数据库体系结构——第6章:锁

    第6章                      锁 开发多用户.数据库驱动的应用时,最大的难点之一是:一方面要力争取得最大限度的并发访问,与此同时还要确保每个用户能以一致的方式读取和修改数据.为此就 ...

  3. Oracle锁与数据库性能

    2019独角兽企业重金招聘Python工程师标准>>> 数据库运行过程中,当用户业务操作产生I/O时,oracle数据库会在相应的表上加锁,来确保数据库的一致性读.但是当锁长期不释放 ...

  4. Oracle 数据库创建表空间、创建用户指定表空间

    Oracle 数据库创建表空间.创建用户指定表空间 //创建临时表空间 create temporary tablespace user_temp tempfile 'D:\oracle\oradat ...

  5. oracle用户新增数据文件,[数据库]20200722_Oracle添加表空间、用户,用户授权

    [数据库]20200722_Oracle添加表空间.用户,用户授权 0 2020-07-25 17:00:30 --创建表空间CREATE TABLESPACE aifu --表空间名 aifu LO ...

  6. 创建oracle 数据库表空间,角色,用户的sql语句

    创建oracle 数据库表空间,角色,用户的sql语句 1.创建角色 CREATE ROLE "QIUDINGROLE" NOT IDENTIFIED; GRANT "C ...

  7. oracle怎么分配表空间,oracle数据库分配表空间、创造用户、分配用户权限操作

    oracle数据库分配表空间.创建用户.分配用户权限操作 1.创建临时表空间 /* create temporary tablespace*/ create temporary tablespace ...

  8. oracle下的数据库实例、表空间、用户及其表的区分

    完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例.  1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等):  2) Oracle数据库实例则是一组O ...

  9. 飞天遁地、来去自如?Oracle数据库秉承技术当先,用户也来说说看

    近日,向来以厚积薄发闻名的Oracle数据库,带着创新的云理念.新近的云技术以及一位响当当的数据库掌门人Andy(甲骨文数据库全球执行副总裁,甲骨文员工号130)登陆中国. "数据库上云&q ...

  10. Oracle中scott数据库,浅析Oracle中sys、system和Scott用户下的数据库连接问题

    system默认:manager sys默认:change_on_install 使用sql Plus登录数据库时,system使用密码manager可直接登录. 由于为自己的密码时更改过的,所以我的 ...

最新文章

  1. MVC框架内容-控制器
  2. 第三十一课.矩阵胶囊与EM路由
  3. WEB中会话跟踪[转]
  4. 广西中专机器人应用与维护_我校2018级工业机器人应用与维护专业跟岗实习
  5. 实现BUG自动检测 - ASP.NET Core依赖注入
  6. 扩展Guava缓存溢出到磁盘
  7. ActionScript3学习笔记2-包
  8. 管理者和领导者的区别_见到一个领导者时如何识别
  9. Bailian2734 十进制到八进制【入门】(POJ NOI0113-45)
  10. 王方月 - 《君王2》与cocos2d-x的邂逅
  11. 微信小程序图片显示不出来的解决方案
  12. 玩转BIOS与注册表
  13. yolov5 烟雾和火焰检测
  14. 智能交通综合管控平台方案
  15. 【趣味实践】自动补帧算法——RIFE的使用
  16. caniuse-lite is outdated. Please run: npx browserslist@latest --update-db
  17. VM虚拟机(VMware)设置外网连接
  18. verilog——74HC85四位数值比较器并扩展为16位数值比较器
  19. 2022/9/5 嵌套路由(靠路由在vue里渲染套渲染),动态路由匹配以及开启propos配置动态路由
  20. 攻防世界 misc 高手区 Miscellaneous-300

热门文章

  1. 怎样将手机视频转换成图片?手机怎么把视频做成gif动图?
  2. 计算机防止检查清理软件吗,解决方案:如何清理计算机垃圾-如何在不使用防病毒软件的情况下清理计算机文件垃圾?...
  3. 初中数学分几个模块_初中数学主要分几大板块,该注意学习哪个板块?
  4. 转:飝兒物語的“Linux创建、删除文件夹”
  5. html嵌入bilibili视频
  6. c语言中换行符的ans2码,二级C语言复习
  7. PPT 如何取消幻灯片自动播放
  8. 非精确一维线搜索(Armijo-Goldstein Rule 和 Wolfe-Powell Rule)
  9. 二叉树的最大深度(力扣作业)
  10. git clone时提示,git remote: HTTP Basic: Access denied 错误