在oracle数据库中创建语句级触发器,需要对scott用户的emp表上进行增删改操作的用户进行安全检查,如果不是scott用户,不能够做数据增、删、改的操作
时间: 2023-02-06 13:54:18 浏览: 349
oracle数据库练习题emp练习题
在 Oracle 数据库中,你可以使用 CREATE TRIGGER 语句来创建一个触发器。
下面是一个示例,可以在 scott 用户的 emp 表上进行增删改操作的用户进行安全检查的触发器:
```
CREATE OR REPLACE TRIGGER emp_security_trg
BEFORE INSERT OR DELETE OR UPDATE ON scott.emp
FOR EACH ROW
BEGIN
IF USER != 'SCOTT' THEN
RAISE_APPLICATION_ERROR(-20500, 'You are not authorized to perform this operation');
END IF;
END;
/
```
上面的触发器是在对 scott 用户的 emp 表进行 INSERT、DELETE 或 UPDATE 操作之前触发的。如果当前的用户不是 scott 用户,它会抛出一个自定义的应用程序错误,终止操作。
请注意,在这个示例中,触发器是在 FOR EACH ROW 级别触发的,这意味着每次对 emp 表的每行进行 INSERT、DELETE 或 UPDATE 操作时都会触发触发器。如果你想在对 emp 表进行 INSERT、DELETE 或 UPDATE 操作时整个操作只触发一次,可以将触发器设置为 FOR EACH STATEMENT 级别。
阅读全文