首页 > 数据库 > Oracle > ORACLE帐户安全策略设置方法
策略:
登录失败可以重试10次。
密码可用90天,90天必须更换。
在60天内密码不可以重用。
密码失效后,可宽限7天使用失效密码.
密码锁定1天。
用户名与密码不可以相同。
用户名与密码不可以相反。
密码的长度要超过8位。
密码中必须要有字符和数字。
以下必须以sysdba的身份执行:
CREATE OR REPLACE FUNCTION VERIFY_FUNCTION
(username varchar2,
password varchar2,
old_password varchar2)
RETURN boolean IS
V_LEN NUMBER;
V_CHAR_C NUMBER;
V_NUM_C NUMBER;
V_REVERSE VARCHAR2(200) := NULL;
BEGIN
--用户名与密码不可以相同
IF username = password THEN
RETURN(FALSE);
END IF;
--密码长度不可以少于8位
IF LENGTH(password) < 8 THEN
RETURN(FALSE);
END IF;
V_LEN := LENGTH(password);
FOR I IN 1..V_LEN LOOP
V_REVERSE := NVL(V_REVERSE,'')||SUBSTR(password,v_len-I+1,1);
IF SUBSTR(password,I,1)>='0' AND SUBSTR(password,I,1)<='9' THEN
V_NUM_C := NVL(V_NUM_C,0)+1;
END IF;
IF UPPER(SUBSTR(password,I,1))>='A' AND UPPER(SUBSTR(password,I,1))<='Z' THEN
V_CHAR_C := NVL(V_CHAR_C,0)+1;
END IF;
END LOOP;
--用户与密码不可以相反
IF username = v_reverse THEN
RETURN(FALSE);
END IF;
--密码必须要有数字和字母
IF NOT (NVL(V_CHAR_C,0)>0 AND NVL(V_NUM_C,0)>0) THEN
RETURN(FALSE);
END IF;
RETURN(TRUE);
END;
ALTER PROFILE DEFAULT LIMIT
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME 90
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 7
PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30383/viewspace-927867/ ,如需转载,请注明出处,否则将追究法律责任。