Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में ऑडिट ट्रिगर बनाना

मैं केवल कुछ बिंदुओं पर ध्यान देना चाहता हूं:

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

क्षमता नियोजन पर विचार करें लेखापरीक्षा के लिए। एक ऑडिट तालिका जो सभी मूल्य परिवर्तनों को ट्रैक करती है, अब तक, डेटाबेस में सबसे बड़ी तालिका होगी:इसमें सभी वर्तमान डेटा और वर्तमान डेटा का पूरा इतिहास होगा। ऐसी तालिका डेटाबेस आकार को परिमाण के 2-3 आदेशों (x10, x100) से बढ़ाएगी। और ऑडिट टेबल जल्दी ही हर चीज की अड़चन बन जाएगी:

  • प्रत्येक डीएमएल ऑपरेशन के लिए ऑडिट टेबल में लॉक की आवश्यकता होगी
  • ऑडिट के कारण सभी प्रशासनिक और रखरखाव कार्यों को डेटाबेस के आकार को समायोजित करना होगा

स्कीमा परिवर्तन . को ध्यान में रखें . 'फू' नाम की एक टेबल को गिराया जा सकता है और बाद में 'फू' नाम की एक अलग टेबल बनाई जा सकती है। ऑडिट ट्रेल को दो अलग-अलग वस्तुओं में अंतर करने में सक्षम होना चाहिए। धीमी गति से बदलते आयाम दृष्टिकोण का बेहतर उपयोग करें।

कुशलतापूर्वक हटाने की आवश्यकता पर विचार करें लेखा परीक्षा रिकॉर्ड। जब आपकी एप्लिकेशन विषय नीतियों द्वारा निर्धारित अवधारण अवधि देय हो, तो आपको देय ऑडिट रिकॉर्ड को हटाने में सक्षम होना चाहिए। यह अब इतनी बड़ी बात नहीं लग सकती है, लेकिन 5 साल बाद जब पहला रिकॉर्ड होने वाला है तो ऑडिट टेबल बढ़कर 9.5TB हो गई है, यह एक समस्या हो सकती है।

ऑडिट को क्वेरी करने . की आवश्यकता पर विचार करें . लेखापरीक्षा पर प्रश्नों का कुशलतापूर्वक उत्तर देने के लिए लेखापरीक्षा तालिका संरचना तैयार की जानी चाहिए। यदि आपका ऑडिट नहीं किया जा सकता है तो इसका कोई मूल्य नहीं है। प्रश्न पूरी तरह से आपकी आवश्यकताओं से संचालित होंगे और केवल आप ही उन्हें जानते हैं, लेकिन अधिकांश ऑडिट रिकॉर्ड समय अंतराल के लिए पूछे जाते हैं ('कल शाम 7 बजे से 8 बजे के बीच क्या परिवर्तन हुए?'), वस्तु द्वारा ('इस रिकॉर्ड में क्या परिवर्तन हुए इसमें तालिका?') या लेखक द्वारा ('बॉब ने डेटाबेस में क्या परिवर्तन किए?')।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर डेटाबेस में T-SQL के साथ सभी तालिकाओं के लिए सभी अनुक्रमणिका के पुनर्निर्माण के लिए 3 तरीके

  2. CONVERT () का उपयोग करके SQL सर्वर में दिनांक/समय मान को स्ट्रिंग में कैसे परिवर्तित करें

  3. SQL सर्वर में sys.columns, sys.system_columns और sys.all_columns के बीच अंतर

  4. एसक्यूएल सर्वर में पंक्ति संख्या पर आंतरिक शामिल कैसे करें?

  5. कृपया SQL सर्वर आँकड़ों को बेहतर बनाने में मदद करें!