小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
Oracle 数据库如果不修改密码有效期,默认180天之后会报错!
程序报错:java.sql.SQLException: ORA-28001: the password has expired
关于报错 ORA-28001
的说明:
28001, 00000, "the password has expired"
// *Cause: The user's account has expired and the password needs to be
// changed
// *Action: change the password or contact the DBA
原因就是所有用户的密码都失效了!
查看当前使用的profile:
set pages0
set line222
col profile for a20
col resource_name for a30
col resource_type for a20
col limit for a20
select * from dba_profiles order by 1;
utlpwdmg.sql是用户建立密码复杂度校验函数的脚本!该脚本位置在 $ORACLE_HOME/rdbms/admin/
,11g中该脚本与10g相比做了一些调整、改进。
启用密码管理:
@?/rdbms/admin/utlpwdmg.sql
调整密码策略:
alter profile default limit password_life_time unlimited;
alter profile default limit password_lock_time unlimited;
alter profile default limit password_grace_time unlimited;
alter profile default limit FAILED_LOGIN_ATTEMPTS 10;
- PASSWORD_LIFE_TIME 90 –用于指定口令有效期
- PASSWORD_GRACE_TIME 10 –用于指定口令宽限期(为了强制用户定期改变口令,以上二者必须同时设置.)
- PASSWORD_REUSE_TIME 1800 –用于指定口令可重用时间.
- PASSWORD_REUSE_MAX UNLIMITED –用于指定在重用口令之前口令需要改变的次数.(需要主要,使用口令历史选项时,只能使用以上两种其中的一个选项.并将另一个选项设置为UNLIMITED.)
- FAILED_LOGIN_ATTEMPTS 3 –用于指定连续登陆的最大失败次数.
- PASSWORD_LOCK_TIME 1/1440 –用于指定帐户被锁定的天数.
- PASSWORD_VERIFY_FUNCTION verify_function; –如果要禁用口令校验函数,可以将PASSWORD_VERIFY_FUNCTION选项设置为NULL.
修改之后不需要重启动数据库,会立即生效。
oracle11g启动参数resource_limit 不管是false还是true,密码策略都是生效的。
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️
今天的文章Oracle 调整密码管理策略 PROFILES分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/23028.html