Oracle11g账户频繁被锁定的3种解决办法

方法1:创建触发器

方法1:数据库中创建触发器(只记录失败),但是需要开发同意或者开发自己创建。找到密码输入错误的服务器,进行数据源配置的更改。

该方法适用于要求找到密码错误用户所在服务器的场景下。

CREATE OR REPLACE TRIGGER sys.logon_denied_to_alertAFTER servererror ON DATABASE
DECLAREmessage   VARCHAR2(168);ip        VARCHAR2(15);v_os_user VARCHAR2(80);v_module  VARCHAR2(50);v_action  VARCHAR2(50);v_pid     VARCHAR2(10);v_sid     NUMBER;v_program VARCHAR2(48);v_username VARCHAR2(32);
BEGINIF (ora_is_servererror(1017)) THEN-- get ip FOR remote connections :IF upper(sys_context('userenv', 'network_protocol')) = 'TCP' THENip := sys_context('userenv', 'ip_address');END IF;SELECT sid INTO v_sid FROM sys.v_$mystat WHERE rownum < 2;SELECT p.spid, v.programINTO v_pid, v_programFROM v$process p, v$session vWHERE p.addr = v.paddrAND v.sid = v_sid;v_os_user := sys_context('userenv', 'os_user');v_username := sys_context('userenv','authenticated_identity');dbms_application_info.read_module(v_module, v_action);message := to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') ||' Password Erro: logon denied from ' || nvl(ip, 'localhost') || ' ' ||v_pid || ' User:' || v_os_user || ' with ' || v_program || ' – ' ||v_module || ' ' || v_action||' dbuser:' || v_username;sys.dbms_system.ksdwrt(2, message);END IF;
END;
/

这个触发器不写入数据库表,会在告警日志中记录

--查看数据库的告警日志
[oracle@top132] cd /u01/app/oracle/diag/rdbms/topdh/topdh/trace
[oracle@top132:/u01/app/oracle/diag/rdbms/topdh/topdh/trace]$ tail -200f alert_topdh.log
Fri Dec 01 19:48:49 2023
2023-12-01 19:48:49 Password Erro: logon denied from localhost 5944 User:oracle with sqlplus@top132 (TNS V1-V3) – sqlplus@top132 (TNS V1-V3)  dbuser:hr
Fri Dec 01 19:52:21 2023
2023-12-01 19:52:21 Password Erro: logon denied from 192.168.16.122 6273 User:Administrator with navicat.exe – navicat.exe  dbuser:SYS

参考链接:https://www.cnblogs.com/plluoye/p/10951120.html

方法2:设置密码输错次数参数

在不需要查被锁定用户的服务器的场景下可以用该方法。

Oracle profile文件设置了密码输错次数限制,超过该次数就会被锁定,更改Oracle profile文件设置了密码输错次数限制为无限制。

查询用户信息

--查询用户信息
set linesize 999
set pagesize 999
select username,account_status,lock_date,profile from dba_users;USERNAME		       ACCOUNT_STATUS			LOCK_DATE	        PROFILE
------------------------------ -------------------------------- ------------------- ------------------------------
......
SYXK			         LOCKED			    	2024-05-08 15:39:25 DEFAULT
.......

查询状态为:LOCKED(TIMED)

查看profile文件配置信息

--查看profile文件配置信息
set linesize 999
set pagesize 999
SELECT resource_name,resource_type,limit FROM dba_profiles WHERE profile='DEFAULT'; RESOURCE_NAME			 RESOURCE LIMIT
-------------------------------- -------- ----------------------------------------
COMPOSITE_LIMIT 		       KERNEL   UNLIMITED
SESSIONS_PER_USER		       KERNEL   UNLIMITED
CPU_PER_SESSION 		       KERNEL   UNLIMITED
CPU_PER_CALL		        	 KERNEL   UNLIMITED
LOGICAL_READS_PER_SESSION	 KERNEL   UNLIMITED
LOGICAL_READS_PER_CALL		 KERNEL   UNLIMITED
IDLE_TIME			             KERNEL   UNLIMITED
CONNECT_TIME			         KERNEL   UNLIMITED
PRIVATE_SGA		   	         KERNEL   UNLIMITED
FAILED_LOGIN_ATTEMPTS		   PASSWORD 10
PASSWORD_LIFE_TIME		     PASSWORD UNLIMITED
PASSWORD_REUSE_TIME		     PASSWORD UNLIMITED
PASSWORD_REUSE_MAX		     PASSWORD UNLIMITED
PASSWORD_VERIFY_FUNCTION	 PASSWORD NULL
PASSWORD_LOCK_TIME		     PASSWORD 1
PASSWORD_GRACE_TIME		     PASSWORD 7已选择16行。

修改参数FAILED_LOGIN_ATTEMPTS

--修改参数FAILED_LOGIN_ATTEMPTS
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;补充:也可以同时进行以下参数修改
alter profile default limit password_grace_time unlimited;
alter profile default limit password_life_time unlimited;
alter profile default limit password_lock_time unlimited;

解锁用户

alter user syxk account unlock;

修改之后不需要重启动数据库,会立即生效。

补充:参数理解

FAILED_LOGIN_ATTEMPTS

FAILED_LOGIN_ATTEMPTS (单位:次数)

  • 用户登录数据库失败次数(密码错误),是整个数据库中各个会话的总和,直到达到这个数,帐户锁定。不是针对特定会话的。
  • 只要登录成功一次,这个计数器就重置为 0 .
  • 帐户锁定后,手工解锁或自动解锁后,该计数器也会重置为 0 .

PASSWORD_LOCK_TIME

PASSWORD_LOCK_TIME (单位:天) 帐户锁定后,多少天后自动解锁。

对应的内部表: user$ (lcount)

PASSWORD_GRACE_TIME

密码到期提前7天提醒

添加profile文件并分配用户

--创建profile文件
create profile profile名字 limit FAILED_LOGIN_ATTEMPTS  10 PASSWORD_LIFE_TIME  180 PASSWORD_REUSE_TIME  UNLIMITED PASSWORD_REUSE_MAX  UNLIMITED PASSWORD_VERIFY_FUNCTION null PASSWORD_LOCK_TIME 1 PASSWORD_GRACE_TIME 30;--新创建的profile文件分配给用户
alter user 用户名 profile profile名字;

参考链接:https://blog.csdn.net/xiezuoyong/article/details/88849226

方法3:通过告警日志排查

方法3:提供告警日志,根据账户锁定时间逐个排查日志中记录的ip。

该方法不太好用,因为有的日志中ip较多。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/836336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【一键录音,轻松转换:用Python打造个性化音频记录工具】

在数字化时代,音频记录已成为日常学习、工作和娱乐不可或缺的一部分。想象一下,只需简单按下几个键,即可随时随地捕捉灵感,记录会议要点,或是珍藏孩子的童言稚语。本文将引领您步入Python编程的奇妙世界,展示如何借助几个强大的库,构建一个既简单又实用的音频录制及转换…

double为什么叫浮点数

小数点在数制中代表一种对齐方式,比如要比较1000和200哪个比较大应该怎么做呢?把他们右对齐。 1000200 然后发现1比0(前面补零)大,所以1000比较大。那么如果是比较1000和200.01呢?这时候就不是右对齐了,而是对应位对齐,也就是小数点对齐。 1000200.01 小数点位置在…

langchain 基于ES的数据向量化存储和检索

中文向量化模型候选&#xff1a; 1、sentence-transformers/all-MiniLM-L6-v2 向量维度为384维&#xff0c;支持多种语言。 2、BAAI/bge-m3 3、多语言模型&#xff1a;BAAI/bge-m3 支持的输入长度<8192 from langchain_community.embeddings import HuggingFaceBgeEmbedd…

STM32快速入门(总线协议之I2C一主多从(软件实现 硬件实现))

STM32快速入门&#xff08;总线协议之I2C一主多从&#xff08;软件实现 & 硬件实现&#xff09;&#xff09; 前言 支持一对多&#xff08;一主多从&#xff09;、多对多传输&#xff08;多主多从&#xff09;&#xff0c;只支持半双工&#xff0c;一般有两根数据线&…

Android性能:高版本Android关闭硬件加速GPU渲染滑动卡顿掉帧

Android性能&#xff1a;高版本Android关闭硬件加速GPU渲染滑动卡顿掉帧 如果在Androidmanifest.xml配置&#xff1a; <application android:hardwareAccelerated"false" > 或者某个特点View使用代码&#xff1a; myView.setLayerType(View.LAYER_TYPE_SOFT…

合并连个有序链表(递归)

21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; 2.讲解算法原理 2.1重复子问题 2.2只关心其中的一个子问题是如何解决的 2.3细节&#xff0c;递归出口 3.小总结 &#xff08;循环&#xff08;迭代&#xff09;VS 递归&#xff09;&#xff08;递归VS深搜&…

19、Flink 的 State Backends 配置详解

1、State Backends 概述 Flink 提供了多种 state backends&#xff0c;它用于指定状态的存储方式和位置。 状态可以位于 Java 的堆或堆外内存&#xff1b;取决于你的 state backend&#xff0c;Flink 也可以自己管理应用程序的状态。 为了让应用程序可以维护非常大的状态&am…

从零开始的软件测试学习之旅(九)jmeter直连数据库及jmeter断言,关联

jmeter直连数据库及断言,关联 jmeter直连数据库步骤jmeter断言jmeter逻辑控制器if控制器ForEach控制器循环控制器 Jmeter关联Jmeter关联XPath提取器Jmeter关联正则表达式提取器二者比较跨线程组关联 每日复习 jmeter直连数据库 概念 这不叫直连:Jmeter -> java/python 提供的…

一套MySQL读写分离分库分表的架构,被秀到了!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

laravel,webman,hyperf,thinkphp推荐哪一个?

laravelwebmanhyperfthinkphp流行程度国内流行&#xff0c;欧洲特别是法国&#xff0c;美国&#xff0c;日本很多使用主要在国内流行&#xff0c;少量国外使用主要国内流行&#xff0c;少量国外使用国内流行&#xff0c;国外俄罗斯有使用性能fpm多进程模式&#xff0c;性能一般…

数据增强,迁移学习,Resnet分类实战

目录 1. 数据增强&#xff08;Data Augmentation&#xff09; 2. 迁移学习 3. 模型保存 4. 102种类花分类实战 1. 数据集 2.导入包 3. 数据读取与预处理操作 4. Datasets制作输入数据 5.将标签的名字读出 6.展示原始数据 7.加载models中提供的模型 8.初始化…

Android Studio在android Emulator中运行的项目黑屏

前言&#xff1a; 最近在做一个Android相关的小项目&#xff0c;因为之前这方面的项目做的比较的少。今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题&#xff0c;经过自己多次的尝试和搜索终于解决了这些问题。 问题&#xff1a; 每次run&#xff08;运行&#xff09…

Android之监控APP崩溃获取日志的方法,Bugly和其他方法

一、APP中集成Bugly 1、相关地址 完整的集成步骤请参考光那个文档&#xff0c;Bugly Android SDK集成文档 集成后&#xff0c;APP的崩溃日志会上传后台&#xff1a;Bugly官网&#xff0c;&#xff08;后台管理&#xff09; 2、步骤 &#xff08;1&#xff09;依赖 api co…

程序员·职场效能必修宝典㊻:如何快速的融入团队

📖 该文隶属 程序员职场效能必修宝典✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝典🏅

【机器学习300问】88、什么是Batch Norm算法?

一、什么是Batch Norm&#xff1f; &#xff08;1&#xff09;Batch Norm的本质 神经网络中的Batch Normalization&#xff08;批量归一化&#xff0c;简称BatchNorm或BN&#xff09;是一种改进神经网络训练过程的规范化方法&#xff0c;BatchNorm的主要目的是加速神经网络的训…

构建教育新未来:智慧校园平台的深度解读与全景呈现

引言 在全球数字化转型的大潮中&#xff0c;智慧校园平台作为教育信息化的重要载体&#xff0c;正以前所未有的姿态颠覆传统的教育模式&#xff0c;引领教育行业步入一个崭新的时代。这个融合了大数据、人工智能、云计算、物联网等一系列前沿科技的平台&#xff0c;以其强大的功…

python中的装饰器,例子说明

在Python中&#xff0c;嵌套装饰器是指在一个函数上应用多个装饰器。每个装饰器都可以为函数添加一些特定的功能。以下是一个稍微复杂一些的例子&#xff0c;我们将创建一个记录日志和验证权限的嵌套装饰器。 ### 例子&#xff1a;记录日志和权限验证的嵌套装饰器 假设我们正…

mybatis-plus使用指南(1)

快速开始 首先 我们 在创建了一个基本的springboot的基础框架以后&#xff0c;在 pom文件中 引入 mybatisplus的相关依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5…

从0到1实现一个ui组件库

0.搭建vue pnpm create vue 1.下载依赖 {"name": "你的ui名","version": "1.0.6","type": "module","license": "MIT","keywords": ["vue3","components",&…

vue3 底层实现原理

设计思路 声明式UI(推荐使用): 即 template 形式(模板,模板的编译依赖于编译器),会被编译器的程序编译为渲染函数,再由渲染器渲染为真实 DOM 编译器:将模板编译为渲染函数,在编译的过程中编译器有能力分析动态内容,并在编译阶段把这些信息提取出来,把附带静动态属…