我们都知道密码策略加固的参数一般包括密码长度、复杂度检测、最大最小使用时间、过期警报时间、最大登录失败次数以及锁定时间等设置。
Oracle默认提供了一个密码策略的sql执行文件utlpwdmg.sql。linux/unix默认路径是$ORACLE_HOME/rdbms/admin/utlpwdmg.sql 。windows路径位置可以通过搜索来获得。
首先我们先看一下Oracle默认安装后密码策略设置是怎样的。
图1
图2
通过配置文件可以发现目前密码策略中密码长度设置为不小于4位,同时也设置了密码存活时间为180天,密码警告时间为7天,登录失败次数显示为10次,锁定时间为1分钟。
接下来我们通过测试来看一下此策略设置脚本是否生效。
图3
修改scott恩口令tiger为123成功,说明utlpwdmg.sql脚本文件未被执行。
下面我们重新修改好utlpwdmg.sql配置,然后执行。
图4
图5
执行脚本:
图6
然后我们查看是否密码长度、密码复杂度检测功能是否已经开启。
图7
有图可知:新密码设置为123失败,要求必须是8位以上。
图8
由图可知:新密码设置为12345678失败,要求必须至少一个数字、一个字母,说明密码复杂度检测已经开启。
图9
由图可知,utlpwdmg.sql默认的failed_login_attempts值由10变为5。
综上所知:utlpwdmg.sql 脚本文件生效,部分密码策略已经生效。
(为了测试方面,实验中profile中的密码策略参数只做了部分修改,实际加固中要多所有的密码策略进行整改加固。)
其实针对用户的profile的设置可以直接通过以下命令单独来设置:
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 100
PASSWORD_REUSE_MAX 200
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function_11G;
补充:
1. 其中verify_function_11G 是utlpwdmg.sql文件中一段针对用户密码的复杂度检测函数。
2. PASSWORD_LOCK_TIME 1/1440 其中的单位都是天,这里/1440是除以1440(24*60)的意思,综合此处意思为锁定时间为1分钟。