我们都知道密码策略加固的参数一般包括密码长度、复杂度检测、最大最小使用时间、过期警报时间、最大登录失败次数以及锁定时间等设置。

  Oracle默认提供了一个密码策略的sql执行文件utlpwdmg.sql.linux/unix默认路径是$ORACLE_HOME/rdbms/admin/utlpwdmg.sql .windows路径位置可以通过搜索来获得。

  首先我们先看一下Oracle默认安装后密码策略设置是怎样的。

  

 

  图1

  

 

  图2

  通过配置文件可以发现目前密码策略中密码长度设置为不小于4位,同时也设置了密码存活时间为180天,密码警告时间为7天,登录失败次数显示为10次,锁定时间为1分钟。

  接下来我们通过测试来看一下此策略设置脚本是否生效。

  修改scott恩口令tiger为123成功,说明utlpwdmg.sql脚本文件未被执行。

  下面我们重新修改好utlpwdmg.sql配置,然后执行。

  

 

  图4

  

 

  图5

  执行脚本:

  然后我们查看是否密码长度、密码复杂度检测功能是否已经开启。

  

 

  图7

  有图可知:新密码设置为123失败,要求必须是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分钟。