限制用户在某时间段内登陆数据库

前提条件:

1、被限制的用户不能拥有dba权限;

2、需要通过sys用户创建触发器。

触发器创建

方式一:通过plsql链接数据库

1)、以sys用户登陆dysdba

2)、文件-新建-SQL窗口,编写触发器

CREATE OR REPLACE TRIGGER limit_connection
AFTER LOGON ON DATABASE
BEGIN
 IF USER='TM1' THEN
IF to_number(TO_CHAR (SYSDATE,'HH24')) BETWEEN 8 AND 22
THEN
RAISE_APPLICATION_ERROR(-20998,'CONT LOGIN BETWEEN 8-20');
END IF;
END IF;

END limit_connection;

编写完成后,点击F8编译,编译成功后,以用户TM1登陆数据库返回验证信息如下图

说明:TM1指用户名,该触发器指当TM1用户访问数据库时,若不在8-22点之间,则返回“CONT LOGIN BETWEEN 8-20”信息,登陆失败。



方式二:通过命令窗口连接数据库操作

1)、打开命令窗口(cmd命令)

2)输入sqlplus /as sysdba,连接成功后继续


3)、若已有用户,则直接编写触发器,否则可以先添加一个测试用户,如上图1中命令创建用户tm1;

触发器同方法一,如下图


3)、编写完成后 提示触发器已创建,重新连接触发器中的用户tm1,命令:conn tm1/tm1;(用户名/密码),提示如上图所示即创建触发器成功。

说明:以上仅个人总结,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值