限制用户只能在特定时间段登录 oracle

需求:只允许一些用户在特定时间内登录

实现方式:通过触发器去实现(对具有dba权限的用户不适用),触发器代码如下

复制代码
CREATE OR REPLACE TRIGGER limit_connection
        AFTER LOGON ON DATABASE
    BEGIN
        IF USER = 'USERNAME' THEN
              IF to_number(TO_CHAR (SYSDATE, 'hh24')) BETWEEN 20 AND 24
          THEN  
              RAISE_APPLICATION_ERROR(-20998,' Dear user '||USER||'! You can''t login between 20 and 24');
             END IF;
        END IF;
END limit_connection;
/
复制代码

测试登录,会正常拒绝登录

ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20998:  Dear user OE! You can't login between 00 and 08
ORA-06512: at line 5

感谢&参考https://blog.csdn.net/weixin_39783426/article/details/116351855

posted @   wazz_s  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示