nael14 بتاريخ: 1 فبراير 2008 تقديم بلاغ مشاركة بتاريخ: 1 فبراير 2008 السلام عليكم ما هي افضل طريقة لعمل مراقبة لل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); ) وهكذا .. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد سعيد بتاريخ: 2 فبراير 2008 تقديم بلاغ مشاركة بتاريخ: 2 فبراير 2008 السلام عليكم اخى الكريماليك طريقة بسيطة واحترافية لعمل اوديتنجلنفرض لديك الجدول 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; / اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nael14 بتاريخ: 2 فبراير 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 2 فبراير 2008 السلام عليكم اخى الكريماليك طريقة بسيطة واحترافية لعمل اوديتنجلنفرض لديك الجدول EMP تريد عمل مراقبة عليه قم بانشاء جدول مشابه له مع اضافة الاعمدة التى تريد مراقبتها فى الجدول ثم قم بانشاء التريجر التالى عليهCREATE OR REPLACE TRIGGER EMP_del AFTER delete ON EMP REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROWBEGIN 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 عمود لاستيعاب القيمة الجديدة و القديمة؟شكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد سعيد بتاريخ: 6 فبراير 2008 تقديم بلاغ مشاركة بتاريخ: 6 فبراير 2008 السلام عليكمحقيقة اعتقد ان هذه افضل طريقة وانا استخدمها فى عملى لكن من الطبيعى ان تنشأ جداول لتخزين البيانات المتغيرة او المعدلة بها ولا هتخزن البيانات فين؟!!!!!!!!! اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed_oracle بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 (معدل) السلام عليكم لكن في حال وجود 100 جدول و كل جدول بة 40 عمودهل معني ذلك سنقوم بإنشاء 100 جدول تانية و كل جدول بة 80 عمود لاستيعاب القيمة الجديدة و القديمة هل يوجد طريقة مرنة ديناميكية dynamic لتسجيل كافة الحركات ( اضافة - تعديل - الغاء ) على كافة الجداول التابعة لمستخدم معين user = scott مثلاوالكتابة تكون فى جدول واحد أو مجموعة جداول للمراقبة ؟ارجوا المساعدة تم تعديل 12 يوليو 2009 بواسطة Ahmed_oracle اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msayed.evara بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 السلام عليكمممكن استخدام خاصية auditingالموجودة بالداتابيز وتفعيل هذه الخاصيةوبعد ذلك استخدام خاصية flashback اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed_oracle بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 شكرا لك على سرعة الرد ولكن كيف يتم تحريك معلومه من شاشات الادخال بالبرنامج ... مثل رقم مستخدم النظام الذى قام بالغاء السجل ( رقم المستخدم من جداول مستخدمى النظام رقم 111 او 112 مثلا ) شكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msayed.evara بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 السلام عليكمباضافة المستخدم والتاريخ فى كل الجداول اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed_oracle بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 (معدل) عند الغاء السجل من شاشة البرنامج ... كيف سيتم تحريك رقم المستخدم الذى قام بعملية الالغاءاي هل يجب عمل update اولا لكتابة رقم المستخدم 111 ثم عمل الغاء للسجل ؟ ارجوا المعذرة عن كتر الاسئلة تم تعديل 12 يوليو 2009 بواسطة Ahmed_oracle اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msayed.evara بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 السلام عليكمردك مضبوط جدا يجب ان تعمل جملة update قبل حذف السجل لمعرفة من حذفه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
wolfa_night بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 إذا كانت الدابيز 9I افحص الخاصية أوديت فيها أن لم تكن مفعلة يجب تفعيلها ومن ثم يمكنك معرفة من دخل الداتابيز مثلا ومتى ومن قام بالنسخ ومتى أما اذا كانت الغاية تسجيل حركات محدده يمكنك إضافتها برمجياً اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed_oracle بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 (معدل) السلام عليكم شكرا لسرعة الرد بصراحة انى افكر فى انشاء database tigger واحدبحيث يمكن استخدامه فى حالة التعديل والالغاء مع كافة الجداول التى تكون داخل الschema او user معين واضع كافة المعلومات فى جدول واحد أو مجموعه جداول ويكون انشاؤه dynamic هل هذا الاقتراح ممكن ؟ سؤال اخر : هل يمكن تمرير قيمة أو معلومة متغيرة ليست مخزنه فى الجداول .. عند تشغيل ال database tigger تم تعديل 12 يوليو 2009 بواسطة Ahmed_oracle اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msayed.evara بتاريخ: 12 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 12 يوليو 2009 السلام عليكميمكنك بالطبع ارسال متغير زى رقم المستخدم من الفورمز الى الداتا بيز واستخدامها طوال user sessionوذلك عن طريق global variable in stored packageويمكنك عمل db trigger on all tables do the same action but for each table اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
المتميز1 بتاريخ: 13 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 13 يوليو 2009 السلام عليكم اخي ممكن استخدام خاصية auditingالموجودة بالداتابيز وتفعيل هذه الخاصيةوبعد ذلك استخدام خاصية flashback كيف يتم استخدام هذه الخاصية ممكن تشرح لي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msayed.evara بتاريخ: 13 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 13 يوليو 2009 السلام عليكمراجع الروابط الاتيةhttp://www.securityfocus.com/infocus/1689http://www.oracle.com/technology/deploy/av...ck_Overview.htm اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
orahamdi بتاريخ: 13 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 13 يوليو 2009 الف شكر ياباشا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.