最近公司有一个项目,用的oracle数据库,整天出现用户被锁的情况,后来百度查了一下,说是用户登录连续出错10次就会被锁住.于是想记录一下看看到底是哪个人在扫数据库的密码.百度了很久才找到方法,下面分享-- 使用sys账号连接数据库,然后执行如下步骤: 1.alter system set audit_trail=db scope=spfile; 2.重启数据库服务 3.AUDIT SESSION WHENEVER NOT SUCCESSFUL; -- 开启审计4.尝试使用错误的密码登录数
使用sys账号连接数据库,然后执行如下步骤: 1.alter system set audit_trail=db scope=spfile; 2.重启数据库服务 3.AUDIT SESSION WHENEVER NOT SUCCESSFUL; -- 开启审计4.尝试使用错误的密码登录数据库 5.select * from sys.aud$ where returncode = 1017; -- 1017登录失败的返回代码
关于当前用户的相关信息,可以通过如下语句找到: SQL> select * from all_objects where object_name like 'SESSION%'; OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAM
#描述:当执行如下SQL select * From XXX for Updata 发现表“XXX”被锁定 #只需要执行如下SQL 查看锁定该表的用户 SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid; #效果图如下
当用户连续登录失败次数过多时,Oracle会锁定该用户,“FAILED_LOGIN_ATTEMPTS”用于设置最大次数,超过该值则锁定该帐号. 要取消用户连续登录失败次数的限制可以按照以下方法操作: 1. 输入以下命令,查看“FAILED_LOGIN_ATTEMPTS”的值: SQL> select * from dba_profiles s where s.profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS'; 2. 输入以下命
前面我们说了用oracle自带的审计功能可以实现记录用户登录失败日志到数据表中(链接:http://www.54ok.cn/6778.html).今天我们来分享一下如何把用户登录失败信息记录到alert.log日志文件中. 使用sys账号登录数据库,然后创建触发器. CREATE OR REPLACE TRIGGER logon_denied_to_alert AFTER servererror ON DATABASEDECLARE message VARCHAR2(168); ip