PLSQL-数据库事件触发器
假设一个名为“SD”的模式有 100 个表、25 个过程等。创建一个触发器来通知我过程中所做的修改(如果)、其他用户的登录/注销等是否可行? 如果是,我如何跟踪现有过程代码的更改、表的创建/删除?
下面的触发器“logon”将登录的用户插入到日志文件(= 表 log_events)中:
CREATE OR REPLACE TRIGGER logon
AFTER LOGON ON SCHEMA
BEGIN
INSERT INTO log_events (used_id,log_date,action)
VALUES (USER,SYSDATE, 'Log on');
END;
--log_events:
CREATE TABLE log_events ( user_id VARCHAR2(50), log_date DATE, action VARCHAR2(50))
Assume a schema named 'SD' with 100 tables, 25 procedures, etc. The creation of a trigger that will inform me of the modifications (if)made in procedures, the logging on/off of other users etc is feasible ?
if yes, how can i trace the changes in the code of an existing procedure, the creation/drop of table ?
the trigger 'logon' below inserts in a log file (= table log_events) the users that log on:
CREATE OR REPLACE TRIGGER logon
AFTER LOGON ON SCHEMA
BEGIN
INSERT INTO log_events (used_id,log_date,action)
VALUES (USER,SYSDATE, 'Log on');
END;
--log_events:
CREATE TABLE log_events ( user_id VARCHAR2(50), log_date DATE, action VARCHAR2(50))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
DDL 事件触发器不适合您吗?例如,一旦表或过程发生更改,触发器
AFTER CREATE OR MODIFY OR DROP
就应该触发。Don't DDL event triggers work for you? E.g. a trigger
AFTER CREATE OR MODIFY OR DROP
should fire once a table or a procedure is changed.