MongoDB एक क्रॉस-प्लेटफ़ॉर्म दस्तावेज़-उन्मुख डेटाबेस है जो डेटा संग्रहण और पुनर्प्राप्ति को तेज़ और आसान बनाता है। डेटाबेस दस्तावेज़ों के लिए JSON जैसी संरचना का उपयोग करता है, जो मुख्य रूप से आधुनिक अनुप्रयोगों से परिचित है।
MongoDB संग्रह और पांडुलिपियों का उपयोग करता है जिससे दस्तावेजों में कुंजी-मूल्य जोड़े होते हैं, MongoDB में डेटा की मूल इकाई। इसके विपरीत, संग्रह में संबंधपरक डेटाबेस तालिकाओं के समतुल्य कार्य और दस्तावेज़ होते हैं।
MongoDB में एक नया उपयोगकर्ता बनाएं
सिस्टम में नए उपयोगकर्ता जोड़ने के लिए, MongoDB एक आंतरिक तकनीक प्रदान करता है जिसे db.createUser () के रूप में जाना जाता है। पारंपरिक डेटाबेस सिस्टम के विपरीत, MongoDB उपयोगकर्ता एक स्थानीय डेटाबेस से बंधे होते हैं जिसे प्रमाणीकरण डेटाबेस कहा जाता है। इस प्रकार, वे पारंपरिक SQL डेटाबेस की तरह विश्व स्तर पर बंधे नहीं हैं।
इसके अलावा, प्रमाणीकरण डेटाबेस और उपयोगकर्ता का नाम एक विशिष्ट पहचानकर्ता के रूप में कार्य करता है। इसलिए, यदि दो उपयोगकर्ता अलग-अलग डेटाबेस में बनाए गए हैं, लेकिन समान नाम साझा करते हैं, तो उन्हें दो अलग-अलग उपयोगकर्ताओं के रूप में पहचाना जाता है। इसलिए, यदि कोई एकाधिक डेटाबेस पर अनुमतियों के साथ एक एकल उपयोगकर्ता बनाना चाहता है, तो उसे एक उपयोगकर्ता को अलग-अलग डेटाबेस में कई बार उपयोगकर्ता बनाने के बजाय लागू डेटाबेस पर अधिकार/भूमिकाएं रखने की अनुमति देनी चाहिए।
उदाहरण:
db.createUser( { user: "Foss", pwd: "password", roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
उपयोगकर्ता प्रबंधन आदेश
Name/s | विवरण |
---|---|
createUser | यह विधि एक नया उपयोगकर्ता बनाती है। |
dropAllUsersFromDatabase | डेटाबेस से सभी उपयोगकर्ताओं को हटाता है। |
dropUser | उपयोगकर्ता को एक कार्य और उसके विशेषाधिकार देता है। |
grantRolesToUser | एक भूमिका और उससे जुड़े विशेषाधिकार एक उपयोगकर्ता को सौंपे जाते हैं। |
RevokeRolesFromUser | उपयोगकर्ता की भूमिका को हटा देता है। |
updateUser | इस पद्धति का उपयोग उपयोगकर्ता के डेटा को अपडेट करने के लिए किया जाता है। |
usersInfo | यह विधि आपूर्ति किए गए उपयोगकर्ताओं के बारे में जानकारी लौटाती है। |
उपयोगकर्ता जोड़ना
उपयोगकर्ता को निर्दिष्ट डीबी में जोड़ते समय, "db.createUser ()" विधि का उपयोग करें। यह ध्यान रखना महत्वपूर्ण है कि गैर-संबंधपरक डेटाबेस में उपयोगकर्ता दस्तावेज़ डालने की तुलना में विकल्पों के साथ उपयोगकर्ताओं को जोड़ना बहुत आसान है।
उदाहरण:
use foss // specify the DB db.createUser( { user: "fosslinux", pwd: passwordPrompt(), // or cleartext password if you wish roles: [ { role: "read", db: "foss" }, { role: "read", db: "articles" }, { role: "read", db: "tutorials" }, { role: "readWrite", db: "tutorialguides" } ] } )
एक बार जब आप उपरोक्त उदाहरण में MongoDB इंस्टेंस को कनेक्ट कर लेते हैं, तो आप db.createUser () कमांड को निष्पादित करने के लिए इसे फॉस डीबी से जोड़ सकते हैं। उपयोग किया गया डेटाबेस उपयोगकर्ता के प्रमाणीकरण डेटाबेस के रूप में कार्य करेगा।
दस्तावेज़ में पासवर्ड और उपयोगकर्ता नाम की आपूर्ति की जाती है जिसमें कुंजी-मूल्य जोड़े के रूप में हमारी विधि कॉल होती है। भूमिकाओं का उपयोग डेटाबेस तक पहुंच को नियंत्रित करता है। किसी भी डेटाबेस तक पहुँचने के लिए एक उपयोगकर्ता की भूमिका होनी चाहिए, यहाँ तक कि उसका अपना प्रमाणीकरण डेटाबेस भी। साथ ही, उपयोगकर्ता को भूमिकाओं का उपयोग करके सिस्टम में अन्य डेटाबेस तक पहुंच प्रदान की जाती है। इस प्रकार, उपयोगकर्ता के विशेषाधिकार उनके प्रमाणीकरण डेटाबेस तक सीमित नहीं हैं। इसलिए, यह उपयोगकर्ताओं को आवश्यकतानुसार कई डेटाबेस में विभिन्न विशेषाधिकार प्राप्त करने में सक्षम बनाता है। कम से कम विशेषाधिकार का सिद्धांत उपयोगकर्ताओं को डेटाबेस के एक्सेस स्कोप को यथासंभव छोटा रखने की अनुमति देता है
MongoDB में व्यवस्थापक उपयोगकर्ता कैसे बनाएं
MongoDB में एक व्यवस्थापक उपयोगकर्ता बनाना db.createUser() विधि का उपयोग करके किया जाता है, जो आपको एक उपयोगकर्ता बनाने की अनुमति देता है। हालाँकि, एक उपयोगकर्ता बनाने के बाद, आपको व्यवस्थापक भूमिकाएँ असाइन करने की आवश्यकता होती है। ये भूमिकाएँ उपयोगकर्ता को व्यवस्थापकीय विशेषाधिकार देती हैं।
MongoDB में एकल डेटाबेस के लिए एक उपयोगकर्ता बनाएं
यदि हम एक ऐसा उपयोगकर्ता बनाना चाहते हैं जो केवल एक डेटाबेस के साथ काम कर सके, तो हम ऊपर दिए गए समान कमांड का उपयोग कर सकते हैं, लेकिन हमें केवल एक बार "userAdmin" विकल्प का उपयोग करना चाहिए।
उदाहरण:
db.createUser( { user: "Fosslinux", pwd: "password", roles:[{role: "userAdmin" , db:"Foss"}]})
कोड विश्लेषण:
- सबसे पहले और सबसे महत्वपूर्ण, बनाने के लिए "उपयोगकर्ता नाम" और "पासवर्ड" निर्दिष्ट करना चाहिए।
- उस उपयोगकर्ता के लिए भूमिका असाइन करें, जो डेटाबेस व्यवस्थापक है; यह "उपयोगकर्ता व्यवस्थापक" भूमिका को सौंपा गया है क्योंकि भूमिका उपयोगकर्ता को केवल डीबी में निर्दिष्ट डेटाबेस के लिए प्रशासनिक विशेषाधिकार प्राप्त करने की अनुमति देती है
- आखिरकार, DB पैरामीटर उस डेटाबेस को सेट करता है जिस पर उपयोगकर्ता के पास प्रशासनिक अधिकार होने चाहिए।
उपयोगकर्ताओं को प्रबंधित करना
उपयोगकर्ताओं को प्रबंधित करने के लिए, किसी को उन भूमिकाओं को समझने की आवश्यकता है जिन्हें परिभाषित करने की आवश्यकता है क्योंकि MongoDB में रीड-रोल और रीड-राइट रोल जैसे कार्यों की पूरी सूची है। "रीड रोल" कमांड केवल डेटाबेस में रीड-ओनली एक्सेस की अनुमति देता है। "रीड-राइट रोल" डेटाबेस को पढ़ने और लिखने की सुविधा प्रदान करता है; इसका मतलब है कि उपयोगकर्ता उस डेटाबेस में संग्रह पर अद्यतन जारी कर सकता है, सम्मिलित कर सकता है और आदेश हटा सकता है।
उदाहरण:
db.createUser( { user: "Foss", pwd: "password", roles:[ { role: "read" , db:"Tutorials"}, { role: "readWrite" , db:"Guides"} } ] })
उपरोक्त उदाहरण से पता चलता है कि फॉस के नाम से जाना जाने वाला उपयोगकर्ता कई डीबी में कई भूमिकाएं बनाता है और उन्हें सौंपा जाता है। उसी मॉडल में, Foss को "ट्यूटोरियल" डेटाबेस पर केवल-पढ़ने की अनुमति और "गाइड" डेटाबेस पर पढ़ने-लिखने की अनुमति दी जाती है।
MongoDB में भूमिकाएं जोड़ना
भूमिकाएँ उपयोगकर्ताओं को MongoDB संसाधनों तक पहुँच प्रदान करती हैं। इसके अलावा, MongoDB कई अंतर्निहित भूमिकाएँ प्रदान करता है जो प्रशासकों को MongoDB सिस्टम तक पहुँच को नियंत्रित करने में सक्षम बनाता है। हालाँकि, जब ये भूमिकाएँ विशेषाधिकारों के वांछित सेट का वर्णन नहीं कर सकती हैं, तो कोई एक विशेष डेटाबेस में नई भूमिकाएँ बना सकता है। व्यवस्थापक डेटाबेस में बनाए गए कार्यों को छोड़कर, भूमिका में केवल वही अधिकार शामिल हो सकते हैं जो उसके डेटाबेस पर लागू होते हैं और जो अन्य भूमिकाओं से विरासत में मिले हैं।
व्यवस्थापक डेटाबेस में परिभाषित भूमिका में व्यवस्थापक डेटाबेस, अन्य डेटाबेस या क्लस्टर संसाधन पर लागू अधिकार हो सकते हैं, और अन्य डेटाबेस से भूमिकाएँ प्राप्त हो सकती हैं। एक नई भूमिका स्थापित करने के लिए, "db.createRole ()" का उपयोग करें और अधिकार सरणी और विरासत में मिली भूमिकाओं की सरणी निर्दिष्ट करें।
MongoDB डेटाबेस नाम को रोल नाम के साथ जोड़कर विशिष्ट रूप से भूमिकाओं को परिभाषित करता है। प्रत्येक भूमिका आपके द्वारा बनाए गए डेटाबेस के दायरे में आती है, लेकिन MongoDB व्यवस्थापक डेटाबेस में adminSystemRoles संग्रह में सभी भूमिका जानकारी संग्रहीत करता है। उदाहरण के लिए, डेटाबेस संसाधन पर रचनात्मक भूमिका और अनुदान भूमिकाएँ क्रियाओं को सुनिश्चित करना चाहिए कि डेटाबेस में भूमिकाएँ बनाई और दी गई हैं। ग्रांटरोल नई भूमिकाओं और इनहेरिट की जाने वाली भूमिकाओं के लिए विशेषाधिकार निर्दिष्ट करता है। उपयोगकर्ता AdminAnyDatabase और अंतर्निहित भूमिकाएं उपयोगकर्ता व्यवस्थापक अपने संबंधित संसाधनों पर CreateRole और अनुदान भूमिकाएं प्रदान करते हैं।
निर्दिष्ट प्रमाणीकरण प्रतिबंधों के साथ एक भूमिका बनाने के लिए, किसी को डेटाबेस संसाधन पर प्रमाणीकरण प्रतिक्रिया कार्रवाई सेट करनी होगी, जिसे तब फ़ंक्शन बनाया जाता है।
उपयोगकर्ता के लिए db.grantRole () विधि निम्नलिखित तर्क लेती है;
पैरामीटर | टाइप करें | विवरण |
---|---|---|
उपयोगकर्ता | स्ट्रिंग | उस उपयोगकर्ता का नाम बताता है जिसे भूमिकाएं देनी हैं। |
भूमिकाएं | Array | उपयोगकर्ता को प्रदान करने के लिए अतिरिक्त भूमिकाओं की एक सरणी देता है। |
चिंता लिखें | दस्तावेज़ | यह वैकल्पिक है और इसका उद्देश्य कमांड में संशोधन करना है। यह अंतिम त्रुटि प्राप्त करने के आदेश के साथ समान फ़ील्ड लेता है। |
भूमिका पैरामीटर उपयोगकर्ता-परिभाषित और अंतर्निहित दोनों कार्यों को निर्दिष्ट कर सकता है, जिसे इसके नाम के साथ भूमिका का चयन करके प्राप्त किया जा सकता है। यह मोंगोड से जुड़कर पूरा किया जाता है (MongoDB सिस्टम के लिए एक प्राथमिक डेमॉन प्रक्रिया जो डेटा अनुरोधों को संभालती है, पृष्ठभूमि प्रबंधन संचालन करती है, और डेटा एक्सेस का प्रबंधन करती है)। वैकल्पिक रूप से, mongos (जो क्लाइंट ऐप्स और शार्प क्लस्टर के बीच संबंध स्थापित करने के लिए ज़िम्मेदार है), आवश्यकता अनुभाग में दिए गए अधिकारों के साथ। उदाहरण के लिए, एक सक्षम अभिगम नियंत्रण में बनाया गया मेरा उपयोगकर्ता व्यवस्थापक व्यवस्थापक और अन्य डेटाबेस में भूमिकाएँ बना सकता है।
भूमिका प्रबंधन आदेश
Name\s | विवरण |
---|---|
createRole | एक भूमिका बनाता है और कहता है कि वह क्या कर सकता है। |
dropRole | उपयोगकर्ता द्वारा निर्धारित की गई भूमिका को हटा देता है। |
dropAllRolesFromDatabase | उन सभी भूमिकाओं को हटा देता है जो उपयोगकर्ता डेटाबेस से सेट अप करते हैं। |
grantPrivilegesToRole | उपयोगकर्ता द्वारा चुनी गई भूमिका के लिए विशेषाधिकार प्रदान करता है। |
grantRolesToRole | बताता है कि उपयोगकर्ता द्वारा परिभाषित भूमिका किन भूमिकाओं से विशेषाधिकार प्राप्त कर सकती है। |
invalidateUserCache | जब आप अमान्य उपयोगकर्ता कैश का उपयोग करते हैं, तो उपयोगकर्ता जानकारी का इन-मेमोरी कैश, जैसे क्रेडेंशियल और भूमिकाएं फ्लश हो जाती हैं। |
RevokePrivilegesFromRole | उपयोगकर्ता द्वारा परिभाषित भूमिका से विशेषाधिकारों को हटा देता है जिसमें वे हैं। |
RevokeRolesFromRole | इनहेरिट की गई भूमिकाओं को उपयोगकर्ता द्वारा परिभाषित भूमिका से हटा देता है जो आप नहीं चाहते हैं। |
rolesInfo | आपकी इच्छित भूमिका या भूमिकाओं के बारे में जानकारी देता है। |
updateRole | उपयोगकर्ता द्वारा सेट की गई भूमिका को अपडेट करता है। |
निष्कर्ष
MongoDB डेटाबेस, जो डेटा के भंडारण और पुनर्प्राप्ति को आसान और तेज़ बनाता है, किसी को "db.createUser ()" कमांड का उपयोग करके एक उपयोगकर्ता बनाने की अनुमति दे सकता है। दूसरी ओर, "AdminAnyDatabase" कमांड उपयोगकर्ताओं को व्यवस्थापक भूमिका के तहत डीबी तक पहुंचने के लिए सभी विशेषाधिकार प्रदान करता है। यह लेख अतिरिक्त मील चला गया है और सचित्र है कि भूमिकाएं और अधिकार कैसे प्रदान करें। हमें उम्मीद है कि यह आपके लिए मददगार होगा। यदि हाँ, तो नीचे टिप्पणी अनुभाग में टिप्पणी करना न भूलें।