कभी-कभी, आपको Oracle® Databasesuperuser, sys
. के सभी कार्यों का ऑडिट करने की आवश्यकता हो सकती है . इस आवश्यकता को पूरा करने के लिए, Oracle ने एक फीचर उलटा 9i पेश किया जिसमें AUDIT_SYS_OPERATIONS
शामिल है। पैरामीटर।
परिचय
जब आप इस पैरामीटर को true
. पर सेट करते हैं , प्रक्रिया AUDIT_FILE_DEST
द्वारा निर्धारित निर्देशिका में फ़ाइलें उत्पन्न करती है पैरामीटर। इन फाइलों में sys
. की सभी क्रियाओं का एक प्रोटोकॉल होता है उपयोगकर्ता। डिफ़ॉल्ट रूप से, फाइलों में sys
. द्वारा कनेक्शन होते हैं लेकिन कनेक्शन के बाद होने वाली कार्रवाइयों को शामिल न करें।
अगर आप AUDIT_SYS_OPERATIONS=true
. सेट करते हैं , ऑडिट फ़ाइल जिसमें sys
. की सभी कार्रवाइयां शामिल हैं उस ऑपरेटिंग सिस्टम उपयोगकर्ता से संबंधित है जिसने डेटाबेस स्थापित किया है - आमतौर पर, Oracle उपयोगकर्ता। एक उपयोगकर्ता जिसके पास sys
. के रूप में कनेक्ट होने का विशेषाधिकार है संभवतः Oracle
. के रूप में कनेक्ट होने का विशेषाधिकार भी है ऑपरेटिंग सिस्टम (OS) स्तर पर। यह एक्सेस AUDIT_SYS_OPERATIONS
. का उपयोग करके बनाता है सुरक्षा की दृष्टि से कुछ हद तक बेकार। तो, Oracle root
. की अनुमति देता है ऑडिट फ़ाइल का स्वामी होना, जिससे डेटाबेस व्यवस्थापक के लिए फ़ाइल में हेरफेर करना या हटाना कठिन हो जाए।
ऑडिट फ़ाइल को OS स्तर पर कॉन्फ़िगर करें
Oracle रीयल एप्लिकेशन क्लस्टर्स (RAC) परिवेश में OS स्तर पर ऑडिट फ़ाइल को कॉन्फ़िगर करने के लिए निम्न चरणों का उपयोग करें:
चरण 1:डेटाबेस पैरामीटर सेट करें
डेटाबेस पैरामीटर सेट करने के लिए निम्न कमांड का उपयोग करें:
SQL> alter system set audit_sys_operations=true scope=spfile;
System altered.
SQL> alter system set audit_syslog_level='LOCAL1.WARNING' scope=spfile;
System altered.
SQL> alter system set audit_trail = OS
SCOPE=SPFILE;
System altered.
चरण 2:RAC नोड्स कॉन्फ़िगर करें
निम्न चरणों का उपयोग root
. के रूप में करें , RAC1 और RAC2 नोड्स को कॉन्फ़िगर करने के लिए:
a) /etc/rsyslog.conf का बैकअप लेने के लिए निम्न कमांड चलाएँ :
cp -p /etc/rsyslog.conf /etc/rsyslog.conf.<ITK#>
b) निम्न पंक्तियों को /etc/rsyslog.conf . में जोड़ें :
# Oracle audit <ITK#>
local1.warning /var/log/oracle/db_name_audit.log
चरण 3:syslog लकड़हारा को पुनरारंभ करें
syslog
को पुनरारंभ करने के लिए निम्न आदेश चलाएँ:लकड़हारा प्रक्रिया:
service rsyslog status
service rsyslog restart
service rsyslog status
चरण 4:RAC डेटाबेस को पुनरारंभ करें
RAC1 और RAC2 पर RAC डेटाबेस को रोलिंग फ़ैशन में पुनरारंभ करने के लिए निम्न चरणों का उपयोग करें:
a) RAC2 पर निम्न कमांड चलाएँ:
srvctl stop instance -d DB_NAME -i DB_SID2
srvctl start instance -d DB_NAME -i DB_SID2
srvctl status database -d DB_NAME
बी) दस मिनट तक प्रतीक्षा करें।
c) RAC1 पर निम्न कमांड चलाएँ:
srvctl stop instance -d DB_NAME -i DB_SID1
srvctl start instance -d DB_NAME -i DB_SID1
srvctl status database -d DB_NAME
चरण 5:लॉगरोटेट फ़ाइल सेट करें
लॉगरोटेट करें . सेट अप करने के लिए RAC1 और RAC2 पर फ़ाइल, /etc/logrotate.d/oracle_audit संपादित करें ,root
. के रूप में , निम्नलिखित पंक्तियों को शामिल करने के लिए:
/var/log/oracle/db_name_audit.log
{
rotate 12
compress
weekly
dateext
notifempty
missingok
copytruncate
}
पैरामीटर लॉगरोटेट करें
आप लॉगरोटेट में निम्न विकल्प शामिल कर सकते हैं (लॉगरोटेट और मैन फ़ाइल का उपयोग करके अपने लॉग प्रबंधित करें से एकत्रित) कॉन्फ़िगरेशन फ़ाइल:
घुमाएं :लॉग का अंतिम एन संग्रह रखें। जब तक डिस्क का उपयोग उचित है, तब तक आप इसे उच्च सेट कर सकते हैं। यदि लॉग बड़ा हो जाता है तो आप इसे पिछले 10 दिनों या 2 सप्ताह के लिए भी सेट कर सकते हैं।
संपीड़ित करें :संग्रहीत लॉग को gzip (अनुशंसित) का उपयोग करके संपीड़ित किया जाता है। यह संपीड़न कच्चे लॉग की तुलना में फ़ाइल का आकार बहुत कम रखता है।
साप्ताहिक :लॉग फ़ाइलों को हर दिन एक बार घुमाया जाता है, या यदि अंतिम रोटेशन के बाद से तारीख कम से कम 7 दिन आगे बढ़ जाती है (सटीक समय की अनदेखी करते हुए)। कार्यदिवस की व्याख्या इस प्रकार है:0 का अर्थ रविवार, 1 का अर्थ सोमवार, 6 का अर्थ शनिवार है . विशेष मान 7 का अर्थ है प्रत्येक 7 दिन, चाहे कार्यदिवस कुछ भी हो। यदि कार्यदिवस तर्क को छोड़ दिया जाता है तो डिफ़ॉल्ट 0 है।
वार्षिक :लॉग फ़ाइलें घुमाई जाती हैं यदि चालू वर्ष पिछले रोटेशन के समान नहीं है।
तारीख :संग्रहीत लॉग फ़ाइलों को संसाधित होने की तिथि के साथ जोड़ दिया जाता है। डिफ़ॉल्ट प्रारूप YYYYMMDD है। यह उपांग संग्रहीत लॉग की खोज को आसान बनाता है।
सूचना :यदि लॉग फ़ाइल खाली है, तो उसे संग्रहित न करें। यह महत्वपूर्ण है क्योंकि आप केवल एक निश्चित संख्या में संग्रह रखते हैं, और यह सुनिश्चित करता है कि आपके पास पुरानी संग्रहीत प्रविष्टियों को बाहर करने वाली खाली फ़ाइलें संग्रहीत नहीं हैं।
मिसिंगोक :यदि कोई लॉग फ़ाइल नहीं मिल पाती है, तो कॉन्फ़िगरेशन में बस अगली लॉग फ़ाइल खोजें। यह सुनिश्चित करता है कि एक लॉग फ़ाइल गुम होने की स्थिति में लॉगरोटेट प्रोग्राम अप्रत्याशित रूप से बाहर नहीं निकलता है।
प्रतिलिपि बनाएं :जब कोई लॉग संग्रहीत किया जाता है, तो logrotate thelog फ़ाइल की सामग्री को दूसरी फ़ाइल (टाइमस्टैम्प के साथ) में कॉपी करता है। यह विकल्प तब logrotate को मूल लॉग फ़ाइल से कॉपी की गई प्रविष्टियों को हटाने या छोटा करने के लिए कहता है। इस विकल्प की आवश्यकता तब होती है जब प्रोग्राम लगातार लॉग फ़ाइल में लिखते हैं, और यह विकल्प सुनिश्चित करता है कि प्रोग्राम द्वारा उसी लॉग फ़ाइल का उपयोग अप्रत्याशित रूप से बाहर निकलने से रोकने के लिए किया जा रहा है (क्योंकि यह लॉग फ़ाइल तक पहुँचने में असमर्थ है)।
पेशेवरों और विपक्ष
OS पर किसी फ़ाइल में ऑडिट रिकॉर्ड लिखने के फायदे और नुकसान में निम्नलिखित बातें शामिल हैं:
पेशेवर:
ऑडिट रिकॉर्ड को root
. में लॉग करना -स्वामित्व वाली फाइल सिस्टम Oracleuser को भी प्रतिबंधित करती है जिसने डेटाबेस को सामग्री को पढ़ने और इसे संशोधित करने से स्थापित किया है।
विपक्ष:
OS पर ऑडिट फ़ाइलों को संग्रहीत करने से जगह की खपत होती है और प्रदर्शन संबंधी समस्याएं हो सकती हैं। उदाहरण के लिए, sys
अब बड़ी कार्रवाइयां कर सकता है, जैसे catalog.sql
running चलाना या catproc.sql
संचालन।
निष्कर्ष
इस पोस्ट के चरण सभी ऑडिट रिकॉर्ड को RACडेटाबेस में OS फ़ाइल में निर्देशित करते हैं। Oracle अनुशंसा करता है कि आप OS सेटिंग्स का उपयोग करें, खासकर यदि आप एक अति-सुरक्षित डेटाबेस कॉन्फ़िगरेशन का उपयोग करते हैं।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें। बातचीत शुरू करने के लिए आप अभी चैट भी कर सकते हैं।
डेटाबेस के बारे में और जानें।