सभी संबंधपरक डेटाबेस प्रबंधन तंत्र डेटा हानि, डेटा भ्रष्टाचार, या डेटा चोरी के खतरों को कम करने के लिए डिज़ाइन किए गए कुछ प्रकार के आंतरिक सुरक्षा तंत्र प्रदान करते हैं। वे द्वारा दी जाने वाली सरल पासवर्ड सुरक्षा से लेकर माइक्रोसॉफ्ट पहुंच उन्नत रिलेशनल डेटाबेस जैसे द्वारा समर्थित जटिल उपयोगकर्ता/भूमिका संरचना के लिए आकाशवाणी तथामाइक्रोसॉफ्ट एसक्यूएल सर्वर। कुछ सुरक्षा तंत्र उन सभी डेटाबेस के लिए समान हैं जो इसे लागू करते हैंस्ट्रक्चर्ड क्वेरी लैंग्वेज.
उपयोगकर्ता-स्तर की सुरक्षा
सर्वर-आधारित डेटाबेस समर्थन करते हैं a उपयोगकर्ता कंप्यूटर ऑपरेटिंग सिस्टम में उपयोग की जाने वाली अवधारणा के समान। यदि आप में पाए गए उपयोगकर्ता/समूह पदानुक्रम से परिचित हैं माइक्रोसॉफ़्ट विंडोज़ NT और Windows 2000, आप पाएंगे कि SQL सर्वर और Oracle द्वारा समर्थित उपयोगकर्ता/भूमिका समूह समान हैं।
अपने डेटाबेस तक पहुंच वाले प्रत्येक व्यक्ति के लिए अलग-अलग डेटाबेस उपयोगकर्ता खाते बनाएं।
कई अलग-अलग लोगों द्वारा सुलभ सामान्य खातों का प्रावधान करने से बचें। सबसे पहले, यह अभ्यास व्यक्तिगत जवाबदेही को समाप्त करता है - यदि कोई उपयोगकर्ता आपके डेटाबेस में परिवर्तन करता है (मान लें कि द्वारा खुद को $5,000 की वृद्धि देते हुए), आप ऑडिट के उपयोग के माध्यम से इसे किसी विशिष्ट व्यक्ति तक वापस नहीं ढूंढ पाएंगे लॉग दूसरा, यदि कोई विशिष्ट उपयोगकर्ता आपके संगठन को छोड़ देता है और आप डेटाबेस से उसकी पहुंच को हटाना चाहते हैं, तो आपको उस पासवर्ड को बदलना होगा जिस पर सभी उपयोगकर्ता भरोसा करते हैं।
उपयोगकर्ता खाते बनाने के तरीके अलग-अलग प्लेटफॉर्म पर अलग-अलग होते हैं और सटीक प्रक्रिया के लिए आपको अपने DBMS-विशिष्ट दस्तावेज़ों से परामर्श करना होगा। माइक्रोसॉफ्ट एसक्यूएल सर्वर उपयोगकर्ताओं को इसके उपयोग की जांच करनी चाहिए sp_adduser संग्रहीत प्रक्रिया। Oracle डेटाबेस व्यवस्थापक पाएंगे उपयोगकर्ता बनाइये कमांड उपयोगी। आप वैकल्पिक प्रमाणीकरण योजनाओं की जांच भी कर सकते हैं। उदाहरण के लिए, Microsoft SQL सर्वर Windows NT एकीकृत सुरक्षा के उपयोग का समर्थन करता है। इस योजना के तहत, उपयोगकर्ताओं को उनके विंडोज एनटी उपयोगकर्ता खातों द्वारा डेटाबेस में पहचाना जाता है और डेटाबेस तक पहुंचने के लिए अतिरिक्त उपयोगकर्ता आईडी और पासवर्ड दर्ज करने की आवश्यकता नहीं होती है। यह दृष्टिकोण डेटाबेस प्रशासकों के बीच लोकप्रिय है क्योंकि यह खाते के बोझ को बदल देता है नेटवर्क प्रशासन कर्मचारियों को प्रबंधन और यह एकल साइन-ऑन की आसानी प्रदान करता है अंतिम उपयोगकर्ता।
भूमिका-स्तर की सुरक्षा
यदि आप कम संख्या में उपयोगकर्ताओं वाले वातावरण में हैं, तो आप शायद पाएंगे कि उपयोगकर्ता खाते बनाना और उन्हें सीधे अनुमति देना आपकी आवश्यकताओं के लिए पर्याप्त है। हालांकि, यदि आपके पास बड़ी संख्या में उपयोगकर्ता हैं, तो आप खातों को बनाए रखने और उचित अनुमतियों से अभिभूत होंगे। इस बोझ को कम करने के लिए, संबंधपरक डेटाबेस समर्थन करते हैं भूमिकाओं. डेटाबेस भूमिकाएँ Windows NT समूहों के समान कार्य करती हैं। उपयोगकर्ता खातों को भूमिका (भूमिकाओं) को सौंपा जाता है और फिर अनुमतियाँ व्यक्तिगत उपयोगकर्ता खातों के बजाय समग्र रूप से भूमिका को सौंपी जाती हैं। उदाहरण के लिए, आप एक डीबीए भूमिका बना सकते हैं और फिर इस भूमिका में अपने प्रशासनिक कर्मचारियों के उपयोगकर्ता खाते जोड़ सकते हैं। उसके बाद, आप सभी वर्तमान (और भविष्य) प्रशासकों को केवल भूमिका की अनुमति देकर एक विशिष्ट अनुमति प्रदान कर सकते हैं। एक बार फिर, भूमिकाएँ बनाने की प्रक्रिया एक मंच से दूसरे मंच पर भिन्न होती है। एमएस एसक्यूएल सर्वर प्रशासकों को जांच करनी चाहिए sp_addrole संग्रहीत कार्यविधि जबकि Oracle DBA का उपयोग करना चाहिए भूमिका बनाएं वाक्य - विन्यास।
अनुमतियाँ देना
अब जब हमने अपने डेटाबेस में उपयोगकर्ताओं को जोड़ लिया है, तो अनुमतियों को जोड़कर सुरक्षा को मजबूत करना शुरू करने का समय आ गया है। हमारा पहला कदम हमारे उपयोगकर्ताओं को उपयुक्त डेटाबेस अनुमति देना होगा। हम इसे SQL GRANT स्टेटमेंट के उपयोग के माध्यम से पूरा करेंगे।
यहाँ कथन का सिंटैक्स है:
अनुदान।
[पर।
सेवा मेरे।
[अनुदान विकल्प के साथ]
अब, आइए इस कथन को पंक्ति-दर-पंक्ति देखें। पहली पंक्ति, अनुदान , हमें उन विशिष्ट तालिका अनुमतियों को निर्दिष्ट करने की अनुमति देता है जो हम प्रदान कर रहे हैं। ये या तो टेबल-लेवल परमिशन (जैसे SELECT, INSERT, UPDATE और DELETE) या डेटाबेस परमिशन (जैसे CREATE TABLE, ALTER DATABASE, और GRANT) हो सकती हैं। एक GRANT स्टेटमेंट में एक से अधिक अनुमतियाँ दी जा सकती हैं, लेकिन तालिका-स्तरीय अनुमतियाँ और डेटाबेस-स्तरीय अनुमतियाँ एक ही कथन में संयुक्त नहीं हो सकती हैं।
दूसरी पंक्ति, पर
अंत में चौथी पंक्ति, अनुदान विकल्प के साथ, वैकल्पिक है। यदि यह पंक्ति कथन में शामिल है, तो प्रभावित उपयोगकर्ता को अन्य उपयोगकर्ताओं को भी यही अनुमतियां देने की अनुमति है। ध्यान दें कि जब किसी भूमिका को अनुमतियाँ असाइन की जाती हैं, तो अनुदान विकल्प के साथ निर्दिष्ट नहीं किया जा सकता है।
उदाहरण डेटाबेस अनुदान
आइए कुछ उदाहरण देखें। हमारे पहले परिदृश्य में, हमने हाल ही में 42 डेटा एंट्री ऑपरेटरों के एक समूह को काम पर रखा है जो ग्राहक रिकॉर्ड जोड़ेंगे और बनाए रखेंगे। उन्हें ग्राहक तालिका में जानकारी तक पहुंचना चाहिए, इस जानकारी को संशोधित करना चाहिए और तालिका में नए रिकॉर्ड जोड़ना चाहिए। उन्हें डेटाबेस से किसी रिकॉर्ड को पूरी तरह से हटाने में सक्षम नहीं होना चाहिए।
सबसे पहले, हमें प्रत्येक ऑपरेटर के लिए उपयोगकर्ता खाते बनाने चाहिए और फिर उन सभी को एक नई भूमिका में जोड़ना चाहिए, डाटा प्रविष्टि. अगला, हमें उन्हें उचित अनुमति देने के लिए निम्नलिखित SQL कथन का उपयोग करना चाहिए:
अनुदान चयन, सम्मिलित करें, अद्यतन करें।
ग्राहकों पर।
टू डाटाएंट्री।
अब एक मामले की जांच करते हैं जहां हम डेटाबेस-स्तरीय अनुमतियां निर्दिष्ट कर रहे हैं। हम DBA भूमिका के सदस्यों को अपने डेटाबेस में नई तालिकाएँ जोड़ने की अनुमति देना चाहते हैं। इसके अलावा, हम चाहते हैं कि वे अन्य उपयोगकर्ताओं को भी ऐसा करने की अनुमति दें। यहाँ SQL कथन है:
अनुदान तालिका बनाएँ।
डीबीए करने के लिए।
अनुदान विकल्प के साथ।
ध्यान दें कि हमने यह सुनिश्चित करने के लिए WITH GRANT OPTION लाइन शामिल की है कि हमारे DBA अन्य उपयोगकर्ताओं को यह अनुमति दे सकते हैं।
अनुमतियाँ हटाना
SQL में पहले दी गई अनुमतियों को हटाने के लिए REVOKE कमांड शामिल है। यहाँ वाक्य रचना है:
निरस्त करें [के लिए अनुदान विकल्प]
पर।
से.
आप देखेंगे कि इस कमांड का सिंटैक्स GRANT कमांड के समान है। अंतर केवल इतना है कि GRANT OPTION कमांड के अंत के बजाय REVOKE कमांड लाइन पर निर्दिष्ट है। एक उदाहरण के रूप में, आइए कल्पना करें कि हम ग्राहक डेटाबेस से रिकॉर्ड निकालने के लिए मैरी की पूर्व में दी गई अनुमति को रद्द करना चाहते हैं। हम निम्नलिखित कमांड का उपयोग करेंगे:
हटाना रद्द करें।
ग्राहकों पर।
मैरी से।
Microsoft SQL सर्वर द्वारा समर्थित एक अतिरिक्त तंत्र है जो ध्यान देने योग्य है - DENY कमांड। इस आदेश का उपयोग किसी उपयोगकर्ता को उस अनुमति को स्पष्ट रूप से अस्वीकार करने के लिए किया जा सकता है जो अन्यथा उनके पास वर्तमान या भविष्य की भूमिका सदस्यता के माध्यम से हो सकती है। यहाँ वाक्य रचना है:
मना।
पर।
सेवा मेरे।