暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle用户状态之OPEN&IN ROLLOVER

IT那活儿 2023-07-15
578

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!




故障概述



近期发现有用户通过PLSQL登录Oracle库时报密码错误。通过修改新密码后,连接还是报密码错误,DBA测试密码不管是远程还是本地都能正常登陆。
检查用户的状态发现该用户状态为“OPEN & IN ROLLOVER”,通过查询资料确认该状态为Oracle 19c&21c新的安全特性“Gradual Database Password Rollover”。该安全特性,允许我们在修改密码之后的一个时间段内,同时使用旧密码和新密码都可以进行连接,这个特性向后兼容到 Oracle Database 19.12。

通过主动结束该用户的“Password Rollover period”有效时间,使其状态变为“OPEN”之后,用户可以正常登陆。分析PLSQL可能不支持该新特性,在使用该新特性时需要注意这点,遇到相同问题时,主动结束该用户的“Password Rollover period”有效时间。




现象重现



step1. 创建测试用户,开启“Gradual Database Password Rollover”特性

step2. 修改测试用户密码,检查状态,测试登陆用户
用户处于“OPEN & IN ROLLOVER”状态:
step3. 测试本地、远程,新旧密码都能正常登陆,新特性已生效
step4. 使用plsql进行登陆时,新旧密码登陆都报密码错误
step5. 主动结束用户的“Password Rollover period”有效时间后,PLSQL用户正常登陆

关于安全特性“Gradual Database Password Rollover”的简单说明:
1)“Gradual Database Password Rollover”特性是基于Oracle Profiles(配置文件)来定义的。
2)该安全特性通过新增加的资源参数PASSWORD_ROLLOVER_TIME 来控制,当该参数设置为非0 限制就允许更改应用程序数据库用户的密码,同时允许旧密码在 PASSWORD_ROLLOVER_TIME 限定的时间内保持有效,在这期间应用程序可以使用旧密码或新密码连接到数据库。当轮转切换时间(password_rollover_time)到期时,就只能用新密码连接访问了。
3)PASSWORD_ROLLOVER_TIME资源设置
  • a. 缺省设置为 0 表示禁用 Password Rollover;
  • b. 单位是天,最小值为1小时,比如把限制设置为4个小时:4/24;
  • c.最大值不能超过60天,也不能超过当前配置文件中的MIN(PASSWORD_GRACE_TIME,PASSWORD_LIFE_TIME);
  • d. 粒度如果是秒,例如(1/24) +(10/1440) +(20/86400)) 表示限制为1小时加10分20秒。
4)"Gradual Database Password Rollover"特性带来的相关变化
  • a. Create Profile 和 Alter Profile 中增加新的 PASSWORD_ROLLOVER_TIME 子句;
  • b. 在Alter User语句中也增加了 expire password rollover period 允许手动提前结束rollover 有效期;
  • c. DBA_USERS相关视图中增加新的 password_change_date 列,account_status 列配合增加了新的状态值,这些值标识当前密码的状态。

END


本文作者:袁 钢(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论