本地策略配置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;[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值