2009-09-17 13 views
6

हमारा वर्तमान एंटरप्राइज़ समाधान एंटिटी फ्रेमवर्क द्वारा संचालित एएसपी.नेट एमवीसी एप्लीकेशन है। ऑडिटिंग के लिए परिवर्तन घटनाओं में कैसे शामिल होना है इसके बारे में कुछ लिंक हैं। मुझे इसमें वास्तव में दिलचस्पी नहीं है।एंटरप्राइज़ डेटा ऑडिटिंग

मुझे एंटरप्राइज़ लेवल ऑडिटिंग आर्किटेक्चर में रूचि है। एंटरप्राइज़ लेवल युद्ध घावों के साथ आप में से, आपके ऑडिटिंग समाधान क्या हैं? क्या आप ढांचे में डेटाबेस में वस्तुओं को क्रमबद्ध करते हैं। क्या आप ऑडिट टेबल में डेटाबेस ट्रिगर्स सेट अप कर रहे हैं? क्या आप एक अलग डेटाबेस का एक साथ उपयोग करते हैं ताकि आपकी ऑडिट वृद्धि आपके ऐप डेटाबेस को प्रभावित न करे? मुझे यहां कोशिश किए गए और सही समाधानों में दिलचस्पी है। मुझे पता है कि हमारी प्रौद्योगिकी पसंद (ईएफ) में विकल्प हैं लेकिन मुझे पहले नींव में दिलचस्पी है।

लिंक की बहुत सराहना की जाएगी।

+0

मुझे एक और महत्वपूर्ण नोट भी दें। हम वापस जाने और आवेदन में पुराने डेटा देखने में सक्षम होने के बारे में भावुक हैं। यह वह जगह है जहां हम महसूस करते हैं कि लगातार क्रमबद्ध वस्तुओं सहायक है (न केवल डेल्टा रिकॉर्डिंग)। – RailRhoad

+2

एक डेटाबेस और एकाधिक डेटाबेस के बीच भेद कुछ हद तक कृत्रिम है। डेटाबेस में एकाधिक फ़ाइल समूह हो सकते हैं, और तालिकाओं में एकाधिक विभाजन हो सकते हैं। आप प्रभावी ढंग से एक डेटाबेस का इलाज कर सकते हैं जैसे कि यह कई डेटाबेस थे, और एक सारणी जैसे कि यह कई टेबल थी। –

उत्तर

1

मैं कई समाधान देखा है, लेकिन मेरी पसंदीदा एक सादगी ही था:

  • लेखा परीक्षा टेबल बनाएं कि प्रत्येक स्रोत तालिका को दर्पण करें, तिथि और प्रकार के प्रकार को ट्रैक करने के लिए कुछ अतिरिक्त कॉलम जोड़ना (यदि आप इसका समर्थन करते हैं तो सम्मिलित करें, अपडेट करें या हटाएं) और उपयोगकर्ता परिवर्तन कर रहा है। सभी बाधाओं और अनुक्रमणिका को हटाएं (जब तक कि आप बहुत सारी खोज न करें)।

  • तालिका अद्यतन तर्क के अंदर (हमने प्रक्रियाओं का उपयोग किया, लेकिन कोई उचित कारण नहीं है कि यह उपयुक्त हुक दिए गए ओआर/एम या अन्य दृढ़ता परत के साथ नहीं किया जा सका), स्रोत तालिका दोनों को लिखें और लेखा परीक्षा तालिका

यह कई लाभ है, लेकिन सबसे बड़ी एक (मेरी राय में) के बारे में चिंता या ग्राहक में बनती लिखने के संचालन के लेन-देन संबंधी अखंडता प्रबंधन करने के लिए सभी कोड लिखने के लिए होने का नहीं है।

+0

ईएफ निर्णय के साथ यहां कोई संग्रहित प्रो नहीं है, हालांकि हम परिवर्तनों में शामिल हो सकते हैं जिसका अर्थ है कि हम इसे दृढ़ता से कर सकते हैं। तो मूल रूप से यह एक अलग डीबी में ऐप टेबल का दर्पण है? – RailRhoad

+0

यह सही है, उसी डीबी को छोड़कर, जैसे कि आपके पास एक दूसरे के साथ "कर्मचारी" और "कर्मचारी इतिहास" जैसी सारणी होंगी। (हालांकि क्रेग स्टंटज़ की टिप्पणी यहां से संबंधित है।) पीछे की ओर, मेरे कहने का कोई कारण नहीं है कि यह संग्रहित प्रक्रियाओं को मानता है, इसलिए मैंने उस पाठ को संपादित कर दिया है। –

+0

क्या इसका मतलब यह है कि एक डेटाबेस को सबकुछ दो बार लिखना पड़ता है? क्या आपने ऐसा करने से थ्रूपुट पर कोई प्रभाव देखा है? – glenatron

2

मेरे पास कोई लिंक नहीं है, लेकिन इस प्रणाली में मुझे दिन के नौकरी पर बनाए रखने का आनंद है। हमारे पास एक एकल लेखापरीक्षा तालिका है, जो मूल रूप से निम्न जानकारी संग्रहीत करती है।

TableName, PrimaryKeyValue, ModifiedColumn, OLDVALUE, NEWVALUE, ChangeUser, बदलें दिनांक

अब, यह लेखा परीक्षा की गति के लिए महान काम करता है, हमारे कोड में, हम ऑटो को लागू करने ऑडिट लॉगिंग के लिए एक आम इंटरफेस है, से लेकिन एक "समीक्षा" दृष्टिकोण, यह जानकारी वापस पाने के लिए "सबसे तेज़" तरीका नहीं है। (दी हम वास्तव में ऑडिट लॉग को देखने के लिए जरूरत के लिए कुछ नहीं किया है ...)

+0

तो मूल रूप से एक बढ़ती हुई तालिका, क्या यह एक ही डीबी में है? – RailRhoad

+0

हां, यह सही है, हमारे पास इस समय टेबल पर कोई अनुक्रमणिका नहीं है। यह कुछ के लिए एक ही डीबी में है, लेकिन एक और संस्करण है जो "डेटाबेस" कॉलम जोड़ता है और बाहर संग्रहीत किया जाता है। –

+0

आप संबंधों में परिवर्तन कैसे संभालते हैं? – camainc

2

हमें हाल ही में हमारे उद्यम में एक ही समस्या को हल करना पड़ा। हमें पहले भी पूर्व संस्करणों में वापस लौटने में सक्षम होना आवश्यक था।

हमने एसक्यूएल में तालिकाओं की बजाय व्यावसायिक संस्थाओं की लेखा परीक्षा समाप्त कर दी। हम मूल रूप से डीबी में रिकॉर्ड को क्रमबद्ध करते हैं और एक संस्करण से अगले संस्करण में किए गए परिवर्तनों के लिए ट्रैक रखते हैं। यह दृष्टिकोण हमें पिछले संस्करणों को व्यावसायिक संस्थाओं में पुनः प्राप्त करने की अनुमति देता है और फिर उसी बचत कार्यों को कॉल करके वापस लौटाता है। वापस वापस करने के लिए यह कार्यक्षमता अनुप्रयोग की ज़िम्मेदारी पर स्थानांतरित की जाएगी क्योंकि इसे यहां हल किया जाना चाहिए अन्यथा हमारी सेवा को भाग लेने वाले अनुप्रयोगों के बारे में बहुत अधिक जानकारी के बारे में जानना पड़ सकता है। संस्करणों द्वारा रिकॉर्ड, पुनर्प्राप्तियों, इतिहास देखने के लिए, और निश्चित रूप से ऑडिट परिवर्तनों के लिए रिकॉर्ड्स प्राप्त करने के लिए सर्विसेज ऑपरेशंस प्रदान किए जाते हैं। यह विभिन्न अनुप्रयोग समूहों और विभिन्न संस्थाओं के लिए एक ऑप्ट-इन दृष्टिकोण है (डीबी में सब कुछ ऑडिट करने की आवश्यकता नहीं है तो ऐसा क्यों करें)।

फिर हम एक हल्के वेबसाइट का निर्माण करते हैं जो सेवा से बात करता है और सभी संस्करणों को प्रदर्शित कर सकता है।हमने संस्करणों (वास्तव में कूल ui प्रतिनिधित्व) के बीच तुलना करने के लिए जोड़/अपडेट/हटाना दिखाने के लिए एक तंत्र बनाया है, इससे उपयोगकर्ताओं को यह देखने की अनुमति मिलती है कि किसने और कब बदल दिया। सेवा किसी इकाई के संस्करणों को देखने के लिए यूआरएल को एक लिंक वापस भेज सकती है। यह हमारे वेबपैस + Winform/wpf ऐप्स को ब्राउज़र लॉन्च करने की अनुमति देता है ताकि उपयोगकर्ता परिवर्तन देख सकें।

शायद मैं इसे पैकेज कर सकता हूं और अगर कोई दिलचस्पी लेता है ....

+0

तो क्या आप ईएफ ऑब्जेक्ट्स ले रहे हैं और उनको क्रमबद्ध कर रहे हैं, फिर उन्हें ऑडिट टेबल/डेटाबेस में संग्रहीत कर रहे हैं? आप अभिभावक-बाल संबंधों को कैसे संभालेंगे? – glenatron

संबंधित मुद्दे