Oracle数据库用户锁定原因以及处理方式

Oracle数据库用户锁定原因以及处理方式

背景

现场在实施过程中,基于安全考虑(用户名和密码之前暴露给其他公司了),需要对用户密码进行修改。

修改过程很简单

alter user [username] identified by [password];

但是在修改之后出现该用户被锁定的问题。


原因:

数据库参数文件中设置了输错密码的次数,登录时当输错密码的次数超过所设置的次数时,则锁住该用户。默认一般为10次。输错密码锁住用户的设计原因:防止恶意的密码攻击。

一开始以为是内部人员不知道密码修改了,多次尝试登陆因为密码错误导致账户锁定。对账号进行了手动解锁

alter user [username] account unlock;

但是后续又出现多次锁定的情况。

后来发现我们在基于此用户做过一些ETL以及建立DBLINK等,对这些内容进行同步的密码更新解决用户锁定的问题


下面是过程中问题排查方式

  1. 查询出当前账号的锁定时间

select username,lock_date from dba_users where username=[username];

  1. 根据锁定时间查看日志文件

日志存放路径可以通过命令查看,cmd命令模式输入lsnrctr→status

cmd → lsnrctl → status

可以找到日志文件【监听程序日志文件】的路径

  1. 根据路径找到日志文件

可以通过日志文件定位访问的IP地址等信息(或者trace文件夹下的listener.log文件)

  1. 最后综合以上信息找出这些请求的地址定位这些ETL以及建立的DBLINK等,对这些内容进行同步的密码更新解决用户锁定的问题

在使用过程中,我们也可以修改允许的最大密码输入错误次数,具体修改方法如下:

1.查看用户配置文件,一般是defalut

SELECT username,PROFILE FROM dba_users where username = [your_username];
  1. 查看当前设置值
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT'

找到【RESOURCE_NAME=‘FAILED_LOGIN_ATTEMPTS’】的项,一般看到【LIMIT=10】

  1. 修改为30次
alter profile default limit FAILED_LOGIN_ATTEMPTS 30;

也可以改为【UNLIMITED】不限次数,但为了安全起见,不建议这样修改

alter profile default limit failed_login_attempts unlimited;

本文来源:https://blog.csdn.net/weixin_33691817/article/details/85988603

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值