Oracle修改用户密码引发的问题

前几天通过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了。

 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值