We need to create a trigger for this purpose.
[oracle@server1 ~]$ sqlplus / as sysdba
SQL> create user sam identified by sam;
User created.
SQL> grant connect , resource to sam;
Grant succeeded.
SQL> conn sam/sam
Connected.
SQL> exit
[oracle@server1 ~]$ sqlplus / as sysdba
SQL> CREATE OR REPLACE TRIGGER limit_connection
AFTER LOGON ON DATABASE
BEGIN
IF USER = 'SAM' THEN
IF to_number(TO_CHAR (SYSDATE, 'hh24')) BETWEEN 20 AND 22
THEN
RAISE_APPLICATION_ERROR(-20998,' Dear user '||USER||'! You can''t login between 20hrs to 22hrs');
END IF;
END IF;
END limit_connection;
/
Trigger created.
SQL> select to_char(sysdate,'hh24') from dual;
TO
--
21
SQL> conn sam/sam
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20998: Dear user SAM! You can't login between 20hrs to 22hrs
ORA-06512: at line 5
Warning: You are no longer connected to ORACLE.
Done...
No comments:
Post a Comment