正则表达式 – 创建密码验证功能Oracle 10g
如何在ORACLE中创建一个函数来检查密码?
密码应包含: >至少1个大写字母 到目前为止,我达到了以下目标: 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/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |