如果不是3层结构,会话的断开连接不是太频繁的话。可以考虑使用系统触发:
create trrigger .......
after logon on database
ifusername ='... ' then
if time ='......' then
exec immediate'revoke insert into ..........';
else
exec 'grant insert\update ......';
end if
else
exit;
end
.........
参照这个:
CREATE OR REPLACE TRIGGER secure_emp
BEFORE INSERT OR UPDATE OR DELETE ON employees
DECLARE
v_dummy VARCHAR2(1);
BEGIN
IF (TO_CHAR (SYSDATE, 'DY') IN ('SAT','SUN'))
THEN RAISE_APPLICATION_ERROR (-20506,'You may only
change data during normal business hours.');
END IF;
SELECT COUNT(*) INTO v_dummy FROM holiday
WHERE holiday_date = TRUNC (SYSDATE);
IF v_dummy > 0 THEN RAISE_APPLICATION_ERROR(-20507,
'You may not change data on a holiday.');
END IF;
END;