ITPub博客

首页 > 数据库 > Oracle > ORACLE帐户安全策略设置方法

ORACLE帐户安全策略设置方法

原创 Oracle 作者:breath 时间:2007-07-25 08:25:35 0 删除 编辑

策略:

登录失败可以重试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;

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30383/viewspace-927867/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    4
  • 访问量
    13660