加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 创建密码验证功能Oracle 10g

发布时间:2020-12-14 02:28:52 所属栏目:百科 来源:网络整理
导读:如何在ORACLE中创建一个函数来检查密码? 密码应包含: 至少1个大写字母 至少1个小写字母 至少1位数 至少8个字符长 不包含3个连续的用户名字母 到目前为止,我达到了以下目标: CREATE OR REPLACE FUNCTION dd_pwd_fun(username varchar2,password varchar2)R
如何在ORACLE中创建一个函数来检查密码?

密码应包含:

>至少1个大写字母
>至少1个小写字母
>至少1位数
>至少8个字符长
>不包含3个连续的用户名字母

到目前为止,我达到了以下目标:

CREATE OR REPLACE FUNCTION dd_pwd_fun(username varchar2,password varchar2)
RETURN BOOLEAN IS

PWD_STR VARCHAR2
USER_NAME

BEGIN

PWD_STR = password;
USER_NAME=username;

IF LENGTH(PWD_STR) < 8 THEN
RETURN FALSE;
END IF;

if regexp_like(:PWD_STR,'^.*[a-z].*$') -- this is for small letter from a -z
and regexp_like(:PWD_STR,'^.*[A-Z].*$') -- this is for capital letters
and regexp_like(:PWD_STR,'^.*[0-9].*$') -- this is for numbers

这是我第一次使用正则表达式,我需要一些帮助来找到最后一个要求的解决方案,而且我想知道我是否在正确的轨道上

Oracle提供了一个在SYS下编译的函数,用于密码验证,并且复杂.您将在$ORACLE_HOME / rdbms / admin / utlpwdmg.sql中找到它.

使用不同的版本,该功能已被修改,并添加了新功能.在10g中,复杂性检查非常简单.在12c之前,有两个函数verify_function(10g)和verify_function_11G(11g).使用12c,还有另外四个函数,ora12c_verify_function,ora12c_strong_verify_function和两个辅助函数complexity_check和string_distance.

由于您使用的是10g,因此您可以编写UDF以强制执行更复杂的密码验证检查.在较新版本中搜索函数及其内容,并在UDF中应用类似的逻辑.看看http://www.oradba.ch/2013/07/oracle-12c-new-password-verify-function/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读