k20*_*ari 2 security oracle plsql
我想做类似的事情
create or replace trigger t1 before ddl on database
begin
insert into table1 values(//the table name on which the ddl will be performed);
end;
Run Code Online (Sandbox Code Playgroud)
所以如果我创建一个名为“Hello”的表,那么“Hello”(表名)将被插入到 table1 中
所以我不知道如何实际获取表名
所以你可以做类似的事情...
CREATE OR REPLACE TRIGGER ddl_trig
AFTER DDL
ON DATABASE
BEGIN
INSERT INTO loguser.ddl_log
(user_name, ddl_date, ddl_type,
object_type, owner,
object_name)
VALUES
(ora_login_user, SYSDATE, ora_sysevent,
ora_dict_obj_type, ora_dict_obj_owner,
ora_dict_obj_name);
END ddl_trig;
/
Run Code Online (Sandbox Code Playgroud)
但是,您不应该构建自己的审核软件/代码。您应该使用数据库的内置审核系统。
免责声明:我在 Oracle 工作,是数据库团队的产品经理。