एसक्यूएल सर्वर में ऑडिट टेबल को लागू करने के लिए सुझाव?

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

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

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

0
ro fr bn
मुझे यह इंगित करना चाहिए कि यह सुविधा केवल एंटरप्राइज़ संस्करण में उपलब्ध है।
जोड़ा लेखक user17060, स्रोत
एसक्यूएल सर्वर 2008 में नए चेंज डेटा कैप्चर फीचर के साथ कुछ अंतर्निहित समर्थन है << a href = "http://msdn.microsoft.com/en-us/library/bb522489.aspx>" rel = "nofollow noreferrer"> msdn .microsoft.com / en-us / पुस्तकालय / bb522489.aspx & gt ;
जोड़ा लेखक andyp, स्रोत
ऑडिटिंग समाधान की बजाय डेटाबेस ऑब्जेक्ट्स को लाइन में रखे जाने के लिए चेंज डेटा कैप्चर फीचर भी अधिक प्रतीत होता है। (यह केवल उदाहरण के लिए 2 दिनों के लायक परिवर्तनों को संग्रहीत करता है।) आपको अभी भी बदलावों के लिए मतदान करना होगा और उन्हें तालिका में लिखना होगा, ताकि आप नीचे की तरह केंद्रीय ऑडिट तालिका में लिखने के लिए ट्रिगर्स बना सकें और उपयोग कर सकें। ओह, और उपर्युक्त यूआरएल टूटा हुआ है, इस लिंक का उपयोग करें।
जोड़ा लेखक BJury, स्रोत

6 उत्तर

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

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

0
जोड़ा

OmniAudit might be a good solution for you need. I've never used it before because I'm quite happy writing my own audit routines, but it sounds good.

0
जोड़ा

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

0
जोड़ा

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

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

Added: If the amount of data vs. reporting is a concern, the audit table could be replicated to a read-only database server, allowing you to run reports whenever necessary without bogging down the master server from doing their work.

0
जोड़ा

मैंने इन दो लिंक उपयोगी पाया है:

Using CLR and single audit table.
Creating a generic audit trigger with SQL 2005 CLR

Using triggers and separate audit table for each table being audited.
How do I audit changes to SQL Server data?

0
जोड़ा

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

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

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

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

0
जोड़ा