2008-08-06 9 views
27

अतीत में उपयोग की जाने वाली एक साधारण विधि मूल रूप से केवल एक दूसरी तालिका बना रही है जिसका संरचना उस व्यक्ति को प्रतिबिंबित करता है जिसे मैं ऑडिट करना चाहता हूं, और उसके बाद मुख्य तालिका पर अद्यतन/हटाएं ट्रिगर बनाएं। रिकॉर्ड अपडेट/हटाए जाने से पहले, वर्तमान स्थिति ट्रिगर के माध्यम से ऑडिट तालिका में सहेजी जाती है।SQL सर्वर में ऑडिट टेबल को लागू करने के लिए सुझाव?

प्रभावी होने पर, ऑडिट तालिका में डेटा रिपोर्ट करने के लिए सबसे उपयोगी या सरल नहीं है। मैं सोच रहा हूं कि डेटा परिवर्तनों की ऑडिट करने के लिए किसी के पास बेहतर तरीका है या नहीं?

इन अभिलेखों के बहुत सारे अपडेट नहीं होने चाहिए, लेकिन यह अत्यधिक संवेदनशील जानकारी है, इसलिए ग्राहक के लिए यह महत्वपूर्ण है कि सभी परिवर्तनों का लेखा परीक्षा और आसानी से रिपोर्ट की जाए।

+2

एसक्यूएल सर्वर 2008 में नए चेंज डेटा कैप्चर फीचर के साथ कुछ अंतर्निहित समर्थन है andyp

+1

मुझे यह इंगित करना चाहिए कि यह सुविधा केवल एंटरप्राइज़ संस्करण में उपलब्ध है। – user17060

+0

चेंज डेटा कैप्चर सुविधा भी ऑडिटिंग समाधान के बजाय डेटाबेस ऑब्जेक्ट्स के साथ रखी गई सुनिश्चित करने के लिए और अधिक प्रतीत होती है। (यह केवल उदाहरण के लिए 2 दिनों के लायक परिवर्तनों को संग्रहीत करता है।) आपको अभी भी बदलावों के लिए मतदान करना होगा और उन्हें तालिका में लिखना होगा, ताकि आप नीचे की तरह केंद्रीय ऑडिट तालिका में लिखने के लिए ट्रिगर्स बना सकें और उपयोग कर सकें। ओह, और उपरोक्त यूआरएल टूटा हुआ है, इस [लिंक] का उपयोग करें (http://msdn.microsoft.com/en-us/library/bb933874.aspx)। – BJury

उत्तर

17

आप इस तालिका के कितने लेखन बनाम पढ़ रहे हैं?

मैंने टेबल, कॉलम, ओल्डवैल्यू, न्यूवेल्यू, यूजर, और चेंजडेट टाइम के कॉलम के साथ एक एकल ऑडिट तालिका का उपयोग किया है - डीबी में किसी भी अन्य बदलाव के साथ काम करने के लिए पर्याप्त सामान्य, और बहुत सारे डेटा को लिखा गया है उस तालिका, उस डेटा पर रिपोर्ट इतनी कम थी कि उन्हें दिन की कम उपयोग अवधि में चलाया जा सकता था।

जोड़ा गया: बनाम रिपोर्टिंग डेटा की मात्रा एक चिंता का विषय, लेखा परीक्षा तालिका आप जब भी आवश्यक रिपोर्ट करने से मास्टर सर्वर नीचे bogging बिना चलाने की अनुमति केवल पढ़ने के लिए डेटाबेस सर्वर से दोहराया जा सकता है, तो उनका काम।

1

क्या कोई अंतर्निहित ऑडिट पैकेज हैं? ओरेकल का एक अच्छा पैकेज है, जो एसक्यूएल को संशोधित करने वाले किसी भी बुरे व्यक्ति की पहुंच के बाहर एक अलग सर्वर पर ऑडिट परिवर्तन भी भेज देगा।

उनका उदाहरण अद्भुत है ... यह दिखाता है कि ऑडिट टेबल को संशोधित करने वाले किसी को भी कैसे सतर्क करना है।

1

OmniAudit आपकी आवश्यकता के लिए एक अच्छा समाधान हो सकता है। मैंने पहले कभी इसका इस्तेमाल नहीं किया है क्योंकि मैं अपने स्वयं के लेखापरीक्षा दिनचर्या लिखने में काफी खुश हूं, लेकिन यह अच्छा लगता है।

1

मैं ग्रेग द्वारा उनके answer में वर्णित दृष्टिकोण का उपयोग करता हूं और तालिका ट्रिगर्स से संग्रहीत संग्रहित प्रक्रिया के साथ ऑडिट तालिका को पॉप्युलेट करता हूं।

CLR और एकल लेखा परीक्षा तालिका का उपयोग करना:

6

हम इसके लिए दो टेबल डिज़ाइन का उपयोग कर रहे हैं।

एक तालिका लेनदेन (डेटाबेस, तालिका का नाम, स्कीमा, कॉलम, लेनदेन ट्रिगर करने वाले एप्लिकेशन, लेनदेन शुरू करने के लिए मेजबान नाम, तारीख, प्रभावित पंक्तियों की संख्या और कुछ और अधिक) के बारे में डेटा धारण कर रहा है।

दूसरी तालिका केवल डेटा परिवर्तनों को संग्रहीत करने के लिए उपयोग की जाती है ताकि यदि आवश्यक हो तो हम परिवर्तन पूर्ववत कर सकते हैं और पुराने/नए मानों पर रिपोर्ट कर सकते हैं।

एक अन्य विकल्प इस प्रकार के लिए किसी तृतीय पक्ष टूल का उपयोग करना है जैसे कि ApexSQL Audit या SQL सर्वर में डेटा कैप्चर सुविधा बदलें।

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