بتاريخ: 1 فبراير 200818 سنة comment_121738 السلام عليكم ما هي افضل طريقة لعمل مراقبة لل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 فبراير 200818 سنة comment_121757 السلام عليكم اخى الكريماليك طريقة بسيطة واحترافية لعمل اوديتنجلنفرض لديك الجدول 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; / تقديم بلاغ
بتاريخ: 2 فبراير 200818 سنة كاتب الموضوع comment_121779 السلام عليكم اخى الكريماليك طريقة بسيطة واحترافية لعمل اوديتنجلنفرض لديك الجدول 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 فبراير 200818 سنة comment_121989 السلام عليكمحقيقة اعتقد ان هذه افضل طريقة وانا استخدمها فى عملى لكن من الطبيعى ان تنشأ جداول لتخزين البيانات المتغيرة او المعدلة بها ولا هتخزن البيانات فين؟!!!!!!!!! تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_162989 السلام عليكم لكن في حال وجود 100 جدول و كل جدول بة 40 عمودهل معني ذلك سنقوم بإنشاء 100 جدول تانية و كل جدول بة 80 عمود لاستيعاب القيمة الجديدة و القديمة هل يوجد طريقة مرنة ديناميكية dynamic لتسجيل كافة الحركات ( اضافة - تعديل - الغاء ) على كافة الجداول التابعة لمستخدم معين user = scott مثلاوالكتابة تكون فى جدول واحد أو مجموعة جداول للمراقبة ؟ارجوا المساعدة تم تعديل 12 يوليو 200916 سنة بواسطة Ahmed_oracle تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_162991 السلام عليكمممكن استخدام خاصية auditingالموجودة بالداتابيز وتفعيل هذه الخاصيةوبعد ذلك استخدام خاصية flashback تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_162994 شكرا لك على سرعة الرد ولكن كيف يتم تحريك معلومه من شاشات الادخال بالبرنامج ... مثل رقم مستخدم النظام الذى قام بالغاء السجل ( رقم المستخدم من جداول مستخدمى النظام رقم 111 او 112 مثلا ) شكرا تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_162995 السلام عليكمباضافة المستخدم والتاريخ فى كل الجداول تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_162996 عند الغاء السجل من شاشة البرنامج ... كيف سيتم تحريك رقم المستخدم الذى قام بعملية الالغاءاي هل يجب عمل update اولا لكتابة رقم المستخدم 111 ثم عمل الغاء للسجل ؟ ارجوا المعذرة عن كتر الاسئلة تم تعديل 12 يوليو 200916 سنة بواسطة Ahmed_oracle تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_162998 السلام عليكمردك مضبوط جدا يجب ان تعمل جملة update قبل حذف السجل لمعرفة من حذفه تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_162999 إذا كانت الدابيز 9I افحص الخاصية أوديت فيها أن لم تكن مفعلة يجب تفعيلها ومن ثم يمكنك معرفة من دخل الداتابيز مثلا ومتى ومن قام بالنسخ ومتى أما اذا كانت الغاية تسجيل حركات محدده يمكنك إضافتها برمجياً تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_163006 السلام عليكم شكرا لسرعة الرد بصراحة انى افكر فى انشاء database tigger واحدبحيث يمكن استخدامه فى حالة التعديل والالغاء مع كافة الجداول التى تكون داخل الschema او user معين واضع كافة المعلومات فى جدول واحد أو مجموعه جداول ويكون انشاؤه dynamic هل هذا الاقتراح ممكن ؟ سؤال اخر : هل يمكن تمرير قيمة أو معلومة متغيرة ليست مخزنه فى الجداول .. عند تشغيل ال database tigger تم تعديل 12 يوليو 200916 سنة بواسطة Ahmed_oracle تقديم بلاغ
بتاريخ: 12 يوليو 200916 سنة comment_163013 السلام عليكميمكنك بالطبع ارسال متغير زى رقم المستخدم من الفورمز الى الداتا بيز واستخدامها طوال user sessionوذلك عن طريق global variable in stored packageويمكنك عمل db trigger on all tables do the same action but for each table تقديم بلاغ
بتاريخ: 13 يوليو 200916 سنة comment_163089 السلام عليكم اخي ممكن استخدام خاصية auditingالموجودة بالداتابيز وتفعيل هذه الخاصيةوبعد ذلك استخدام خاصية flashback كيف يتم استخدام هذه الخاصية ممكن تشرح لي تقديم بلاغ
بتاريخ: 13 يوليو 200916 سنة comment_163113 السلام عليكمراجع الروابط الاتيةhttp://www.securityfocus.com/infocus/1689http://www.oracle.com/technology/deploy/av...ck_Overview.htm تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.