欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle基础教程之触发器(DDL触发器作用)

程序员文章站 2022-06-02 22:26:15
oracle基础教程之触发器(DDL触发器作用) 栗子: --案例1:禁止SCOTT用户的DDL操作 CREATE OR REPLACE TRIGGER scot...

oracle基础教程之触发器(DDL触发器作用)

oracle基础教程之触发器(DDL触发器作用)

oracle基础教程之触发器(DDL触发器作用)

栗子:

--案例1:禁止SCOTT用户的DDL操作
CREATE OR REPLACE TRIGGER scott_trigger
BEFORE DDL
ON SCHEMA
BEGIN
   RAISE_APPLICATION_ERROR(-20005,'scott用户禁止所有的DDL操作!');
END;

--测试
CREATE SEQUENCE test_seq;
--案例2:
--创建一个记录数据库对象DDL操作的日志表
create table object_log(
   logid number constraint pk_logid primary key,   
   operatedate date not null,
   objecttype varchar2(50) not null,
   objectowner varchar2(50) not null
);


CREATE SEQUENCE object_log_seq;
--创建触发实现对数据库对象DDL操作记录的触发器
CREATE OR REPLACE TRIGGER object_trigger
AFTER CREATE OR DROP OR ALTER
ON DATABASE
BEGIN
  INSERT INTO object_log(logid,operatedate,objecttype,objectowner)
  VALUES(object_log_seq.nextval,sysdate,ORA_DICT_OBJ_TYPE,ORA_DICT_OBJ_OWNER);
END;
--测试
conn yanln/yanln
create sequence test_seq1;

conn system/password
select * from object_log;