前提条件:
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;(用户名/密码),提示如上图所示即创建触发器成功。
说明:以上仅个人总结,仅供参考。