等保二级的缘故,需要设置下Oracle数据库的密码校验
先查看了下 dba_profiles ,看下现有的密码复杂度配置如何。
SELECT t.* FROM dba_profiles t;
再查看现有用户使用的 dba_profiles 配置文件
SELECT * FROM dba_users; – profile 字段
参看这个帖子,找到了 product\11.2.0\dbhome_1\RDBMS\ADMIN\utlpwdmg.sql
这个sql文件
https://www.cnblogs.com/Px-Passion/p/13705216.html
找到文件将语句粘过来执行,提示找不到 verify_function_11G 函数 ,去函数那看,verify_function_11G创建成功但是有错误提示
提示的是 sys.v$database 不存在,百度尝试了很多种方法,尝试分段执行verify_function_11G ,verify_function
,这两个函数。
以及执行utlpwdmg.sql 里的这个alert语句
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME 1
PASSWORD_VERIFY_FUNCTION verify_function_11G;
还是失败了,但是看到sys.v$database这个地方,看了看自己登录的用户是system,切换到sys用户,将语句粘贴过来执行
成功了。。。。。。
之后就是根据第三方测评做了一些调整,将密码更换周期改为90天
alter profile default limit Password_life_time 90
等保中要求PASSWORD_VERIFY_FUNCTION的值不能为空,也要注意下。
取消Oracle密码复杂度检查:
alter profile default limit password_verify_function null
这个帖子里的方法是创建自定义的dba_profiles 文件,然后将用户使用的配置文件改成创建后的自定义文件,跟我需要的不太一样,其中对于dba_profiles 文件解释的比较详细, mark下。
https://izpan.com/article-201.html