MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

उपयोगकर्ता कैसे बनाएं और MongoDB में भूमिका कैसे जोड़ें

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"}]})

कोड विश्लेषण:

  1. सबसे पहले और सबसे महत्वपूर्ण, बनाने के लिए "उपयोगकर्ता नाम" और "पासवर्ड" निर्दिष्ट करना चाहिए।
  2. उस उपयोगकर्ता के लिए भूमिका असाइन करें, जो डेटाबेस व्यवस्थापक है; यह "उपयोगकर्ता व्यवस्थापक" भूमिका को सौंपा गया है क्योंकि भूमिका उपयोगकर्ता को केवल डीबी में निर्दिष्ट डेटाबेस के लिए प्रशासनिक विशेषाधिकार प्राप्त करने की अनुमति देती है
  3. आखिरकार, 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" कमांड उपयोगकर्ताओं को व्यवस्थापक भूमिका के तहत डीबी तक पहुंचने के लिए सभी विशेषाधिकार प्रदान करता है। यह लेख अतिरिक्त मील चला गया है और सचित्र है कि भूमिकाएं और अधिकार कैसे प्रदान करें। हमें उम्मीद है कि यह आपके लिए मददगार होगा। यदि हाँ, तो नीचे टिप्पणी अनुभाग में टिप्पणी करना न भूलें।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी $concatArrays

  2. $unionWith - MongoDB के UNION ALL . के बराबर

  3. मोंगोइड या मोंगोमैपर?

  4. MongoDB में लौटाए गए दस्तावेज़ों को सीमित करने के 2 तरीके

  5. MongoDB डेटा स्टोर निर्देशिका बदलना