منبع اصلی نوشتار زیر در این لینک قرار دارد

اجرای trigger همزمان با logon به سیستم

میخوام یه trigger بنویسم که با login هر کاربر اجرا بشه و مثلاً نام کاربر رو ذخیره کنه:

CREATE OR REPLACE TRIGGER logonauditing
AFTER LOGON ON application.schema
DECLARE
machinename VARCHAR2(64);
osuserid VARCHAR2(30);
session_id_part1 NUMBER;
session_id_part2 NUMBER;
CURSOR c1 IS
SELECT osuser, machine, sid, serial#
FROM v$session WHERE audsid = userenv( 'sessionid' );
BEGIN
OPEN c1;
FETCH c1 INTO osuserid, machinename, session_id_part1, session_id_part2;
INSERT INTO LOGON_table(osuser, machine, logon_time, session_id_1, session_id_2)
VALUES ( osuserid, machinename, sysdate,session_id_part1, session_id_part2);
CLOSE c1;
COMMIT;
END;

نکته: میشه از AUDIT CONNECT به جای trigger استفاده کرد (اوراکل فعالیت‌های ورود و خروج رو تو audit trail ذخیره می‌کنه)، می‌تونید پیشنهاد تام در این باره رو از اینجا ببینید.



به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد