الانتقال إلى المحتوى

ماهي أفضل طريقة لعمل Aduiting


nael14

Recommended Posts

السلام عليكم

ما هي افضل طريقة لعمل مراقبة للDATABASE في كل عملية ادخال, حذف أو تعديل للبيانات

قمت بإنشاء جدول بة الحقول التالية:
اسم الجدول , اسم العمود, قيمة قبل التعديل, والقيمة بعد التعديل

لكن وجدت صعوبة في عملية الادخال على الجدول حيث انني احتاج كل حقل من الجدول الذي علية الحدث ان اقوم بعملية

INSERT
في جدول المراقبة لكل عمود على حدة
بمعني :
اذا صارت عملية تعديل على الجدول
TEST_TABLE
وبة عدد عمودين :
تكون النتيجة كتالي:

INSERT INTO ADUIT_USERS(TAB_NAME, COL_NAME,VAL_BEFORE, VAL_AFTER)
)

VALUES('TEST_TABLE','TEST_COL1', NULL, 500);
)

INSERT INTO ADUIT_USERS(TAB_NAME, COL_NAME,VAL_BEFORE, VAL_AFTER)
)

VALUES('TEST_TABLE','TEST_COL12', 300,200);
)




وهكذا ..

رابط هذا التعليق
شارك

السلام عليكم اخى الكريم
اليك طريقة بسيطة واحترافية لعمل اوديتنج
لنفرض لديك الجدول EMP تريد عمل مراقبة عليه قم بانشاء جدول مشابه له مع اضافة الاعمدة التى تريد مراقبتها فى الجدول ثم قم بانشاء التريجر التالى عليه

CREATE OR REPLACE TRIGGER EMP_del
  AFTER delete ON EMP
  REFERENCING OLD AS OLD NEW AS NEW
  FOR EACH ROW
BEGIN INSERT INTO EMP_aud
              (EMP_NO,ENAME,
               SAL,N_EMP_NO,N_ENAME,_N_SAL, 
              )
     :OLD.EMP_NO,:OLD.ENAME,:OLD.SAL,:NEW.EMP_NO,:NEW.ENAME,:NEW.SAL
              
              );
END;
/

رابط هذا التعليق
شارك

السلام عليكم اخى الكريم
اليك طريقة بسيطة واحترافية لعمل اوديتنج
لنفرض لديك الجدول EMP تريد عمل مراقبة عليه قم بانشاء جدول مشابه له مع اضافة الاعمدة التى تريد مراقبتها فى الجدول ثم قم بانشاء التريجر التالى عليه
CREATE OR REPLACE TRIGGER EMP_del
AFTER delete
ON EMP
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
INSERT INTO EMP_aud
(EMP_NO,ENAME,
SAL,N_EMP_NO,N_ENAME,_N_SAL,
)
:OLD.EMP_NO,:OLD.ENAME,:OLD.SAL,:NEW.EMP_NO,:NEW.ENAME,:NEW.SAL

);
END;
/


شكرا على الاجابة
لكن في حال وجود 100 جدول و كل جدول بة 40 عمود
هل معني ذلك سنقوم بإنشاء 100 جدول تانية و كل جدول بة 80 عمود لاستيعاب القيمة الجديدة و القديمة

؟

شكرا
رابط هذا التعليق
شارك

السلام عليكم
حقيقة اعتقد ان هذه افضل طريقة وانا استخدمها فى عملى لكن من الطبيعى ان تنشأ جداول لتخزين البيانات المتغيرة او المعدلة بها ولا هتخزن البيانات فين؟!!!!!!!!!

رابط هذا التعليق
شارك

  • بعد 1 سنة...

السلام عليكم

لكن في حال وجود 100 جدول و كل جدول بة 40 عمود
هل معني ذلك سنقوم بإنشاء 100 جدول تانية و كل جدول بة 80 عمود لاستيعاب القيمة الجديدة و القديمة


هل يوجد طريقة مرنة ديناميكية dynamic لتسجيل كافة الحركات ( اضافة - تعديل - الغاء ) على كافة الجداول التابعة لمستخدم معين user = scott مثلا

والكتابة تكون فى جدول واحد أو مجموعة جداول للمراقبة ؟


ارجوا المساعدة تم تعديل بواسطة Ahmed_oracle
رابط هذا التعليق
شارك

السلام عليكم
ممكن استخدام خاصية auditing
الموجودة بالداتابيز وتفعيل هذه الخاصية
وبعد ذلك استخدام خاصية flashback

رابط هذا التعليق
شارك

شكرا لك على سرعة الرد

ولكن كيف يتم تحريك معلومه من شاشات الادخال بالبرنامج ... مثل رقم مستخدم النظام الذى قام بالغاء السجل ( رقم المستخدم من جداول مستخدمى النظام رقم 111 او 112 مثلا )

شكرا

رابط هذا التعليق
شارك

عند الغاء السجل من شاشة البرنامج ... كيف سيتم تحريك رقم المستخدم الذى قام بعملية الالغاء

اي هل يجب عمل update اولا لكتابة رقم المستخدم 111
ثم عمل الغاء للسجل ؟


ارجوا المعذرة عن كتر الاسئلة

تم تعديل بواسطة Ahmed_oracle
رابط هذا التعليق
شارك

إذا كانت الدابيز 9I افحص الخاصية أوديت فيها أن لم تكن مفعلة يجب تفعيلها ومن ثم يمكنك معرفة من دخل الداتابيز مثلا ومتى ومن قام بالنسخ ومتى أما اذا كانت الغاية تسجيل حركات محدده يمكنك إضافتها برمجياً

رابط هذا التعليق
شارك

السلام عليكم

شكرا لسرعة الرد

بصراحة انى افكر فى انشاء database tigger واحد

بحيث يمكن استخدامه فى حالة التعديل والالغاء مع كافة الجداول التى تكون داخل الschema او user معين

واضع كافة المعلومات فى جدول واحد أو مجموعه جداول

ويكون انشاؤه dynamic

هل هذا الاقتراح ممكن ؟

سؤال اخر : هل يمكن تمرير قيمة أو معلومة متغيرة ليست مخزنه فى الجداول .. عند تشغيل ال database tigger

تم تعديل بواسطة Ahmed_oracle
رابط هذا التعليق
شارك

السلام عليكم

يمكنك بالطبع ارسال متغير زى رقم المستخدم من الفورمز الى الداتا بيز واستخدامها طوال user session

وذلك عن طريق global variable in stored package

ويمكنك عمل db trigger on all tables do the same action but for each table

رابط هذا التعليق
شارك

السلام عليكم اخي

ممكن استخدام خاصية auditing
الموجودة بالداتابيز وتفعيل هذه الخاصية
وبعد ذلك استخدام خاصية flashback


كيف يتم استخدام هذه الخاصية ممكن تشرح لي
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية