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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


15 رد (ردود) على هذا الموضوع

#1 nael14

nael14

    مشترك

  • الأعضــاء
  • 173 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 02 February 2008 - 01:06 AM

السلام عليكم

ما هي افضل طريقة لعمل مراقبة لل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);
)



وهكذا ..
(يَا أَيُّهَا النَّاسُ اتَّقُوا رَبَّكُمْ إِنَّ زَلْزَلَةَ السَّاعَةِ شَيْءٌ عظيم * يَوْمَ تَرَوْنَهَا تَذْهَلُ كُلُّ مُرْضِعَةٍ عَمَّا أَرْضَعَتْ وَتَضَعُ كُلُّ ذَاتِ حَمْلٍ حَمْلَهَا وَتَرَى النَّاسَ سُكَارَى وَمَا هُمْ بِسُكَارَى وَلَكِنَّ عَذَابَ اللَّهِ شَدِيدٌ)


What a fool believes he sees, no wise man has the power to reason away...


صورة


منذ ولدت و أنت تفخر بالاسلام ..... فمتى يفخر الاسلام بك

OCA/OCP DEVELOPER



المدونة الشخصية بعيدة عن طبيعة عملي


#2 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 02 February 2008 - 11:20 AM

السلام عليكم اخى الكريم
اليك طريقة بسيطة واحترافية لعمل اوديتنج
لنفرض لديك الجدول 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;
/


#3 nael14

nael14

    مشترك

  • الأعضــاء
  • 173 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 02 February 2008 - 03:30 PM

السلام عليكم اخى الكريم
اليك طريقة بسيطة واحترافية لعمل اوديتنج
لنفرض لديك الجدول 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 عمود لاستيعاب القيمة الجديدة و القديمة

؟

شكرا
(يَا أَيُّهَا النَّاسُ اتَّقُوا رَبَّكُمْ إِنَّ زَلْزَلَةَ السَّاعَةِ شَيْءٌ عظيم * يَوْمَ تَرَوْنَهَا تَذْهَلُ كُلُّ مُرْضِعَةٍ عَمَّا أَرْضَعَتْ وَتَضَعُ كُلُّ ذَاتِ حَمْلٍ حَمْلَهَا وَتَرَى النَّاسَ سُكَارَى وَمَا هُمْ بِسُكَارَى وَلَكِنَّ عَذَابَ اللَّهِ شَدِيدٌ)


What a fool believes he sees, no wise man has the power to reason away...


صورة


منذ ولدت و أنت تفخر بالاسلام ..... فمتى يفخر الاسلام بك

OCA/OCP DEVELOPER



المدونة الشخصية بعيدة عن طبيعة عملي


#4 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 06 February 2008 - 10:48 AM

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

#5 Ahmed_oracle

Ahmed_oracle

    عضو نشط

  • الأعضــاء
  • 240 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 12 July 2009 - 05:43 PM

السلام عليكم

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


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

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


ارجوا المساعدة

تم التعديل بواسطة Ahmed_oracle, 12 July 2009 - 05:49 PM.


#6 msayed.evara

msayed.evara

    مشترك

  • الأعضــاء
  • 119 مشاركة
  • الاسم الأول:Mohamed
  • اسم العائلة:Sayed
  • البـلـد: Country Flag
  • المنصب الحالي:Systems Analyst

تاريخ المشاركة 12 July 2009 - 05:48 PM

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

#7 Ahmed_oracle

Ahmed_oracle

    عضو نشط

  • الأعضــاء
  • 240 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 12 July 2009 - 06:01 PM

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

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

شكرا

سبحان الله ... والحمد لله 


#8 msayed.evara

msayed.evara

    مشترك

  • الأعضــاء
  • 119 مشاركة
  • الاسم الأول:Mohamed
  • اسم العائلة:Sayed
  • البـلـد: Country Flag
  • المنصب الحالي:Systems Analyst

تاريخ المشاركة 12 July 2009 - 06:02 PM

السلام عليكم

باضافة المستخدم والتاريخ فى كل الجداول
MOHAMMED SAYED
Analyst

#9 Ahmed_oracle

Ahmed_oracle

    عضو نشط

  • الأعضــاء
  • 240 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 12 July 2009 - 06:10 PM

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

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


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

تم التعديل بواسطة Ahmed_oracle, 12 July 2009 - 06:13 PM.

سبحان الله ... والحمد لله 


#10 msayed.evara

msayed.evara

    مشترك

  • الأعضــاء
  • 119 مشاركة
  • الاسم الأول:Mohamed
  • اسم العائلة:Sayed
  • البـلـد: Country Flag
  • المنصب الحالي:Systems Analyst

تاريخ المشاركة 12 July 2009 - 06:13 PM

السلام عليكم

ردك مضبوط جدا يجب ان تعمل جملة update قبل حذف السجل لمعرفة من حذفه
MOHAMMED SAYED
Analyst

#11 wolfa_night

wolfa_night

    عضو

  • الأعضــاء
  • 41 مشاركة

تاريخ المشاركة 12 July 2009 - 06:13 PM

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

#12 Ahmed_oracle

Ahmed_oracle

    عضو نشط

  • الأعضــاء
  • 240 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 12 July 2009 - 06:34 PM

السلام عليكم

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

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

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

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

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

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

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

تم التعديل بواسطة Ahmed_oracle, 12 July 2009 - 06:35 PM.

سبحان الله ... والحمد لله 


#13 msayed.evara

msayed.evara

    مشترك

  • الأعضــاء
  • 119 مشاركة
  • الاسم الأول:Mohamed
  • اسم العائلة:Sayed
  • البـلـد: Country Flag
  • المنصب الحالي:Systems Analyst

تاريخ المشاركة 12 July 2009 - 07:58 PM

السلام عليكم

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

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

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

#14 المتميز1

المتميز1

    مشترك

  • الأعضــاء
  • 74 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 13 July 2009 - 12:11 PM

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

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


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

#15 msayed.evara

msayed.evara

    مشترك

  • الأعضــاء
  • 119 مشاركة
  • الاسم الأول:Mohamed
  • اسم العائلة:Sayed
  • البـلـد: Country Flag
  • المنصب الحالي:Systems Analyst

تاريخ المشاركة 13 July 2009 - 04:17 PM

السلام عليكم

راجع الروابط الاتية

http://www.securityf...om/infocus/1689

http://www.oracle.co...ck_Overview.htm
MOHAMMED SAYED
Analyst