उपयोगकर्ता कैसे बनाएं और उसमें भूमिका कैसे जोड़ें? MongoDB
⚡ स्मार्ट सारांश
उपयोगकर्ता बनाना और उसमें भूमिका जोड़ना MongoDB यह क्रेडेंशियल परिभाषित करने, अंतर्निहित भूमिकाएँ निर्दिष्ट करने और विशिष्ट डेटाबेस के लिए विशेषाधिकारों को सीमित करने के लिए db.createUser() विधि पर निर्भर करता है, जिससे प्रशासनिक और एकल-डेटाबेस खातों में पहुँच नियंत्रण मजबूत होता है।
अंतर्निर्मित भूमिकाएँ क्या हैं? MongoDB?
खाता बनाने से पहले, अंतर्निहित भूमिकाओं को समझना सहायक होता है। MongoDB भूमिका विशेषाधिकारों का एक नामित संग्रह है, और प्रत्येक विशेषाधिकार एक संसाधन (एक डेटाबेस या संग्रह) को उस पर अनुमत कार्यों के साथ जोड़ता है। इसलिए, उपयोगकर्ता बनाते समय भूमिका निर्दिष्ट करना यह तय करता है कि वह खाता वास्तव में क्या कर सकता है।
MongoDB यह अपने अंतर्निहित भूमिकाओं को डेटाबेस उपयोगकर्ता भूमिकाओं, डेटाबेस प्रशासन भूमिकाओं, क्लस्टर प्रशासन भूमिकाओं, बैकअप और पुनर्स्थापना भूमिकाओं और सुपरयूज़र भूमिकाओं में वर्गीकृत करता है। नीचे दी गई तालिका उपयोगकर्ताओं के प्रबंधन के दौरान सबसे अधिक उपयोग की जाने वाली भूमिकाओं का सारांश प्रस्तुत करती है:
| भूमिका | वर्ग | प्रदान किए गए विशेषाधिकार |
|---|---|---|
| पढ़ना | डेटाबेस उपयोगकर्ता | डेटाबेस में मौजूद सभी गैर-सिस्टम संग्रहों तक केवल पढ़ने की पहुंच। |
| पढ़ें लिखें | डेटाबेस उपयोगकर्ता | संग्रहों पर पढ़ने की पहुंच के साथ-साथ सम्मिलित करने, अद्यतन करने और हटाने की सुविधा। |
| डीबीएडमिन | डेटाबेस एडमिन | डेटाबेस के लिए स्कीमा, अनुक्रमणिका और सांख्यिकी प्रबंधन। |
| उपयोगकर्ता व्यवस्थापक | डेटाबेस एडमिन | एक ही डेटाबेस पर उपयोगकर्ता और भूमिकाएँ बनाएँ और संशोधित करें। |
| उपयोगकर्ता व्यवस्थापक कोई भी डेटाबेस | सर्वोच्च प्रयोक्ता | इंस्टेंस में मौजूद प्रत्येक डेटाबेस में उपयोगकर्ता प्रशासन। |
| जड़ | सर्वोच्च प्रयोक्ता | सभी संसाधनों और संचालन तक पूर्ण पहुंच। |
MongoDB व्यवस्थापक उपयोगकर्ता बनाएँ
में एक उपयोगकर्ता व्यवस्थापक बनाना MongoDB createUser विधि का उपयोग करके किया जाता है। निम्न उदाहरण दिखाता है कि यह कैसे किया जा सकता है।
db.createUser(
{ user: "Guru99",
pwd: "password",
roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Code स्पष्टीकरण:
- पहला चरण “उपयोगकर्ता नाम” और “पासवर्ड” निर्दिष्ट करना है जिसे बनाना होगा।
- दूसरा चरण उपयोगकर्ता के लिए एक भूमिका निर्धारित करना है। चूंकि उसे डेटाबेस प्रशासक होना चाहिए, इसलिए हमने उसे "userAdminAnyDatabase" भूमिका सौंपी है। यह भूमिका उपयोगकर्ता को डेटाबेस में मौजूद सभी डेटाबेस पर प्रशासनिक विशेषाधिकार प्रदान करती है। MongoDB.
- db पैरामीटर एडमिन डेटाबेस को निर्दिष्ट करता है, जो एक विशेष डेटाबेस के भीतर MongoDB जिसमें इस उपयोगकर्ता की जानकारी होती है।
यदि आदेश सफलतापूर्वक निष्पादित होता है, तो निम्नलिखित आउटपुट दिखाया जाएगा:
आउटपुट:
आउटपुट से पता चलता है कि एक उपयोगकर्ता ने "Guru"99" नाम का उपयोगकर्ता बनाया गया था और उस उपयोगकर्ता को सभी डेटाबेस पर विशेषाधिकार प्राप्त हैं। MongoDB.
MongoDB एकल डेटाबेस के लिए उपयोगकर्ता बनाएँ
किसी एक डेटाबेस का प्रबंधन करने वाले उपयोगकर्ता को बनाने के लिए, हम ऊपर उल्लिखित समान कमांड का उपयोग कर सकते हैं, लेकिन हमें केवल "userAdmin" विकल्प का उपयोग करने की आवश्यकता है।
निम्नलिखित उदाहरण दर्शाता है कि यह कैसे किया जा सकता है:
db.createUser(
{
user: "Employeeadmin",
pwd: "password",
roles:[{role: "userAdmin" , db:"Employee"}]})
Code स्पष्टीकरण:
- पहला चरण “उपयोगकर्ता नाम” और “पासवर्ड” निर्दिष्ट करना है जिसे बनाना होगा।
- दूसरा चरण उपयोगकर्ता के लिए एक भूमिका निर्धारित करना है, जो इस मामले में, चूंकि उपयोगकर्ता को डेटाबेस प्रशासक होना चाहिए, इसलिए उसे "userAdmin" भूमिका सौंपी जाती है। यह भूमिका उपयोगकर्ता को केवल db विकल्प में निर्दिष्ट डेटाबेस पर प्रशासनिक विशेषाधिकार प्रदान करती है।
- db पैरामीटर उस डेटाबेस को निर्दिष्ट करता है जिस पर उपयोगकर्ता के पास प्रशासकीय विशेषाधिकार होने चाहिए।
यदि आदेश सफलतापूर्वक निष्पादित होता है, तो निम्नलिखित आउटपुट दिखाया जाएगा:
आउटपुट:
आउटपुट से पता चलता है कि “Employeeadmin” नामक एक उपयोगकर्ता बनाया गया था और उस उपयोगकर्ता के पास केवल “Employee” डेटाबेस पर विशेषाधिकार हैं।
उपयोगकर्ताओं को प्रबंधित करना
सबसे पहले, उन भूमिकाओं को समझें जिन्हें आपको परिभाषित करने की आवश्यकता है। भूमिकाओं की एक पूरी सूची उपलब्ध है। MongoDBउदाहरण के लिए, "रीड" रोल होता है, जो डेटाबेस तक केवल रीड-ओनली एक्सेस की अनुमति देता है, और फिर "रीडराइट" रोल होता है, जो डेटाबेस तक रीड और राइट दोनों एक्सेस प्रदान करता है। इसका मतलब है कि उपयोगकर्ता उस डेटाबेस में मौजूद कलेक्शन पर इंसर्ट, डिलीट और अपडेट कमांड जारी कर सकता है।
db.createUser(
{
user: "Mohan",
pwd: "password",
roles:[
{ role: "read" , db:"Marketing" },
{ role: "readWrite" , db:"Sales" }
]
})
उपरोक्त कोड स्निपेट दर्शाता है कि मोहन नामक एक उपयोगकर्ता बनाया गया है, और उसे कई डेटाबेस में कई भूमिकाएँ सौंपी गई हैं। उपरोक्त उदाहरण में, उसे "मार्केटिंग" डेटाबेस पर केवल पढ़ने की अनुमति और "सेल्स" डेटाबेस पर पढ़ने और लिखने की अनुमति दी गई है।
कैसे देखें और प्रबंधित करें MongoDB उपयोगकर्ता
खाते बन जाने के बाद, MongoDB यह ड्रॉप किए बिना उनका निरीक्षण करने, अपडेट करने और हटाने के लिए कमांड का एक सेट प्रदान करता है।ping और प्रत्येक उपयोगकर्ता को पुनः निर्मित करना। ये कमांड उस डेटाबेस पर चलती हैं जहाँ उपयोगकर्ता बनाया गया था, इसलिए इन्हें जारी करने से पहले 'use' स्टेटमेंट का उपयोग करके सही डेटाबेस पर स्विच करें।
उपयोगकर्ता प्रबंधन के सबसे सामान्य कमांड निम्नलिखित हैं:
- db.getUsers() — यह वर्तमान डेटाबेस में परिभाषित प्रत्येक उपयोगकर्ता को उनकी भूमिकाओं के साथ सूचीबद्ध करता है।
- db.getUser(“username”) — यह एक खाते का विवरण लौटाता है, जो विशेषाधिकारों की ऑडिटिंग के लिए उपयोगी है।
- db.grantRolesToUser() — यह किसी मौजूदा उपयोगकर्ता की वर्तमान भूमिकाओं को प्रभावित किए बिना, उसमें एक या अधिक भूमिकाएँ जोड़ता है।
- db.revokeRolesFromUser() — यह विशिष्ट भूमिकाओं को हटाता है, और जिम्मेदारियों में बदलाव होने पर पहुंच को और सख्त बनाता है।
- db.changeUserPassword() — खाते का पासवर्ड रीसेट करता हैping इसकी भूमिकाएं बरकरार हैं।
- डीबी.ड्रॉपयूजर() — डेटाबेस से उपयोगकर्ता को स्थायी रूप से हटा देता है।
नीचे दिए गए उदाहरण में एक अतिरिक्त भूमिका प्रदान की जाती है, दूसरी भूमिका रद्द की जाती है, पासवर्ड रीसेट किया जाता है और अंत में खाता हटा दिया जाता है:
// List all users in the current database db.getUsers() // Grant an additional role to an existing user db.grantRolesToUser("Employeeadmin", [{ role: "readWrite", db: "Employee" }]) // Remove a role from a user db.revokeRolesFromUser("Employeeadmin", [{ role: "userAdmin", db: "Employee" }]) // Change a user's password db.changeUserPassword("Employeeadmin", "newPassword") // Delete a user db.dropUser("Employeeadmin")
इन ऑपरेशनों के बाद db.getUsers() को दोबारा चलाने से यह पुष्टि हो जाती है कि परिवर्तन लागू हो गए हैं और केवल इच्छित खाते और भूमिकाएँ ही शेष हैं।
के लिए सर्वोत्तम अभ्यास MongoDB प्रयोक्ता प्रबंधन
सुनियोजित उपयोगकर्ता खाते एक MongoDB तैनाती सुरक्षित और ऑडिट करने में आसान है। निम्नलिखित प्रथाएं आकस्मिक डेटा लीक और विशेषाधिकारों के दुरुपयोग के जोखिम को कम करती हैं:
- न्यूनतम विशेषाधिकार लागू करें: किसी खाते को केवल वही भूमिकाएँ प्रदान करें जिनकी वास्तव में आवश्यकता है, व्यापक प्रशासनिक भूमिकाओं के बजाय एकल डेटाबेस पर रीडर-राइट को प्राथमिकता दें।
- उत्पादन में जड़ का उपयोग करने से बचें: रूट और userAdminAnyDatabase भूमिकाओं को दैनिक कार्यों के बजाय सेटअप और आपातकालीन कार्यों के लिए आरक्षित रखें।
- प्रमाणीकरण सक्षम करें: सर्वर को –auth विकल्प के साथ शुरू करें ताकि क्रेडेंशियल्स को वास्तव में लागू किया जा सके।
- मजबूत पासवर्ड का प्रयोग करें: पासवर्ड की लंबाई और जटिलता को मिलाकर, db.changeUserPassword() का उपयोग करके निर्धारित समय पर पासवर्ड बदलें।
- नियमित रूप से ऑडिट करें: Revसमय-समय पर db.getUsers() के आउटपुट की समीक्षा करें और उन खातों को हटा दें जिनकी अब आवश्यकता नहीं है।
ये सभी आदतें मिलकर यह सुनिश्चित करती हैं कि प्रत्येक खाता किसी वास्तविक आवश्यकता से जुड़ा हो और उस तक पहुंच संभव हो सके। tracजब भी कोई सुरक्षा समीक्षा होती है, तब इसका उपयोग किया जाता है।






