سؤال

إحدى الطرق البسيطة التي استخدمتها في الماضي هي في الأساس إنشاء جدول ثانٍ تعكس بنيته الجدول الذي أريد تدقيقه، ثم إنشاء مشغل تحديث/حذف على الجدول الرئيسي.قبل تحديث/حذف السجل، يتم حفظ الحالة الحالية في جدول التدقيق عبر المشغل.

على الرغم من فعاليتها، إلا أن البيانات الموجودة في جدول التدقيق ليست هي الأكثر فائدة أو سهولة في الإبلاغ عنها.أتساءل عما إذا كان لدى أي شخص طريقة أفضل لمراجعة تغييرات البيانات؟

لا ينبغي أن يكون هناك الكثير من التحديثات لهذه السجلات، ولكنها معلومات حساسة للغاية، لذلك من المهم للعميل أن يتم تدقيق جميع التغييرات والإبلاغ عنها بسهولة.

هل كانت مفيدة؟

المحلول

كم مقابل الكتابةقراءة هذا الجدول (الجداول) هل تتوقع؟

لقد استخدمت جدول تدقيق واحد، يحتوي على أعمدة للجدول والعمود وOldValue وNewValue والمستخدم وChangeDateTime - عام بما يكفي للعمل مع أي تغييرات أخرى في قاعدة البيانات، وبينما تمت كتابة الكثير من البيانات في هذا الجدول، يتم إعداد التقارير على تلك البيانات كانت متفرقة بما يكفي بحيث يمكن تشغيلها في فترات منخفضة الاستخدام من اليوم.

تمت الإضافة:إذا كانت كمية البيانات مقابل.يعد إعداد التقارير أمرًا مثيرًا للقلق، ويمكن نسخ جدول التدقيق إلى خادم قاعدة بيانات للقراءة فقط، مما يسمح لك بتشغيل التقارير عند الضرورة دون إعاقة الخادم الرئيسي عن القيام بعمله.

نصائح أخرى

نحن نستخدم تصميم طاولتين لهذا الغرض.

يحتفظ أحد الجداول ببيانات حول المعاملة (قاعدة البيانات، واسم الجدول، والمخطط، والعمود، والتطبيق الذي قام بتشغيل المعاملة، واسم المضيف لتسجيل الدخول الذي بدأ المعاملة، والتاريخ، وعدد الصفوف المتأثرة، وزوجين آخرين).

يتم استخدام الجدول الثاني فقط لتخزين تغييرات البيانات حتى نتمكن من التراجع عن التغييرات إذا لزم الأمر والإبلاغ عن القيم القديمة/الجديدة.

خيار آخر هو استخدام أداة طرف ثالث لهذا الغرض، مثل تدقيق ApexSQL أو تغيير ميزة التقاط البيانات في SQL Server.

لقد وجدت هذين الرابطين مفيدين:

استخدام CLR وجدول التدقيق الفردي.
إنشاء مشغل تدقيق عام باستخدام SQL 2005 CLR

استخدام المشغلات وجدول التدقيق المنفصل لكل جدول يتم تدقيقه.
كيف أقوم بتدقيق التغييرات على بيانات SQL Server؟

هل هناك أي حزم تدقيق مدمجة؟لدى Oracle حزمة رائعة، والتي سترسل أيضًا تغييرات التدقيق إلى خادم منفصل خارج نطاق وصول أي شخص سيء يقوم بتعديل SQL.

مثالهم رائع..ويوضح كيفية التنبيه على أي شخص يقوم بتعديل جداول التدقيق.

OmniAudit قد يكون حلا جيدا لما تحتاجه.لم أستخدمه من قبل أبدًا لأنني سعيد جدًا بكتابة إجراءات التدقيق الخاصة بي، لكنه يبدو جيدًا.

أستخدم النهج الذي وصفه جريج في كتابه إجابة وملء جدول التدقيق بإجراء مخزن يتم استدعاؤه من مشغلات الجدول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top