大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
前几天通过plsql登录数据库时,提示密码过期,需要修改密码,那就修改呗。改完过了会,再登录,发现用户被锁了。那就去解锁下吧。
一、登录数据库服务器
su oracle;
sqlplus "/as sysdba";
alter user xx account unlock;
重新登,发现还是锁着的,怀疑是有应用服务一直在尝试连数据库导致锁定,遂先把服务给停掉了。
二、查看用户状态
发现状态是LOCKED(TIMED),也就是用户登录失败次数超过限制被锁定,且设置了时效的。
三、查看profile配置
SELECT resource_name,resource_type,limit FROM dba_profiles WHERE profile='DEFAULT'
发现FAILED_LOGIN_ATTEMPTS字段是10,也就是失败10次后就锁定。
相关字段解释:
(1) 对数据库资源做限制
sessions_per_user 每个用户名所允许的并行会话数
cpu_per_session 一个会话一共可以使用的cpu时间,单位是百分之一秒
ccpu_per_call 一次sql调用(解析、执行和获取)允许使用的cpu时间
connect_time 限制会话连接时间,单位是分钟
idle_time 允许空闲会话的时间,单位是分钟
logical_reads_per_session 限制会话对数据块的读取,单位是块
logical_reads_per_call 限制sql调用对数据块的读取,单位是块
composite_limit 指定一个会话的总的资源消耗,以service units单位表示
private_sga 限制会话在sga中shared pool中私有空间的分配
(2) 对密码做限制
failed_login_attempts 帐户被锁定之前可以错误尝试的次数
password_life_time 密码可以被使用的天数,单位是天,默认值180天
password_reuse_time 密码可重用的间隔时间(结合password_reuse_max)
password_reuse_max 密码的最大改变次数(结合password_reuse_time)
password_lock_time 超过错误尝试次数后,用户被锁定的天数,默认1天
password_grace_time 当密码过期之后还有多少天可以使用原密码
password_verify_function 该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create
然后按网上大部分的说法,将这个限制去掉或加大失败次数即可。
alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
然后重新将用户解锁,一般这样下来就可以了。但我发现并没有成功。
原因就出在第三步,当前用户并没有采用默认的profile配置,而网上提供的方法都是默认default 的
查看当前用户采用的profile配置名,发现并不是default
select profile from dba_users where username='xx'
所以要重新修改下
alter profile xxprofilename limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
再去解锁用户,就OK了。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164705.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...