الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

بتاريخ:

السلام عليكم

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

بتاريخ:

السلام عليكم

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

بتاريخ:

إذا كانت الدابيز 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


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

الف شكر ياباشا

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.