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

⚡ स्मार्ट सारांश

उपयोगकर्ता बनाना और उसमें भूमिका जोड़ना MongoDB यह क्रेडेंशियल परिभाषित करने, अंतर्निहित भूमिकाएँ निर्दिष्ट करने और विशिष्ट डेटाबेस के लिए विशेषाधिकारों को सीमित करने के लिए db.createUser() विधि पर निर्भर करता है, जिससे प्रशासनिक और एकल-डेटाबेस खातों में पहुँच नियंत्रण मजबूत होता है।

  • 🔑 मुख्य विधि: db.createUser() कमांड एक ही स्टेटमेंट में उपयोगकर्ता, पासवर्ड और भूमिकाओं की एक सरणी निर्दिष्ट करके एक खाता बनाता है।
  • प्रशासक का कार्यक्षेत्र: userAdminAnyDatabase भूमिका प्रत्येक डेटाबेस पर प्रबंधन अधिकार प्रदान करती है, जबकि userAdmin नियंत्रण को एक नामित डेटाबेस तक सीमित करती है।
  • 🎯 भूमिका असाइनमेंट: रीड और रीडराइट जैसी अंतर्निहित भूमिकाएँ उपयोगकर्ता द्वारा किसी संग्रह पर की जा सकने वाली क्रियाओं से सटीक रूप से मेल खाती हैं।
  • 👥 एकाधिक डेटाबेस: एक ही खाता एक ही भूमिकाओं के सरणी के भीतर कई डेटाबेस में अलग-अलग भूमिकाएँ निभा सकता है।
  • सत्यापन: db.getUsers() विधि और इससे प्राप्त आउटपुट इस बात की पुष्टि करते हैं कि खाते और विशेषाधिकार सही ढंग से प्रदान किए गए थे।

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

अंतर्निर्मित भूमिकाएँ क्या हैं? MongoDB?

खाता बनाने से पहले, अंतर्निहित भूमिकाओं को समझना सहायक होता है। MongoDB भूमिका विशेषाधिकारों का एक नामित संग्रह है, और प्रत्येक विशेषाधिकार एक संसाधन (एक डेटाबेस या संग्रह) को उस पर अनुमत कार्यों के साथ जोड़ता है। इसलिए, उपयोगकर्ता बनाते समय भूमिका निर्दिष्ट करना यह तय करता है कि वह खाता वास्तव में क्या कर सकता है।

MongoDB यह अपने अंतर्निहित भूमिकाओं को डेटाबेस उपयोगकर्ता भूमिकाओं, डेटाबेस प्रशासन भूमिकाओं, क्लस्टर प्रशासन भूमिकाओं, बैकअप और पुनर्स्थापना भूमिकाओं और सुपरयूज़र भूमिकाओं में वर्गीकृत करता है। नीचे दी गई तालिका उपयोगकर्ताओं के प्रबंधन के दौरान सबसे अधिक उपयोग की जाने वाली भूमिकाओं का सारांश प्रस्तुत करती है:

भूमिका वर्ग प्रदान किए गए विशेषाधिकार
पढ़ना डेटाबेस उपयोगकर्ता डेटाबेस में मौजूद सभी गैर-सिस्टम संग्रहों तक केवल पढ़ने की पहुंच।
पढ़ें लिखें डेटाबेस उपयोगकर्ता संग्रहों पर पढ़ने की पहुंच के साथ-साथ सम्मिलित करने, अद्यतन करने और हटाने की सुविधा।
डीबीएडमिन डेटाबेस एडमिन डेटाबेस के लिए स्कीमा, अनुक्रमणिका और सांख्यिकी प्रबंधन।
उपयोगकर्ता व्यवस्थापक डेटाबेस एडमिन एक ही डेटाबेस पर उपयोगकर्ता और भूमिकाएँ बनाएँ और संशोधित करें।
उपयोगकर्ता व्यवस्थापक कोई भी डेटाबेस सर्वोच्च प्रयोक्ता इंस्टेंस में मौजूद प्रत्येक डेटाबेस में उपयोगकर्ता प्रशासन।
जड़ सर्वोच्च प्रयोक्ता सभी संसाधनों और संचालन तक पूर्ण पहुंच।

MongoDB व्यवस्थापक उपयोगकर्ता बनाएँ

में एक उपयोगकर्ता व्यवस्थापक बनाना MongoDB createUser विधि का उपयोग करके किया जाता है। निम्न उदाहरण दिखाता है कि यह कैसे किया जा सकता है।

db.createUser(
{	user: "Guru99",
	pwd: "password",

	roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})

MongoDB व्यवस्थापक उपयोगकर्ता बनाएँ

Code स्पष्टीकरण:

  1. पहला चरण “उपयोगकर्ता नाम” और “पासवर्ड” निर्दिष्ट करना है जिसे बनाना होगा।
  2. दूसरा चरण उपयोगकर्ता के लिए एक भूमिका निर्धारित करना है। चूंकि उसे डेटाबेस प्रशासक होना चाहिए, इसलिए हमने उसे "userAdminAnyDatabase" भूमिका सौंपी है। यह भूमिका उपयोगकर्ता को डेटाबेस में मौजूद सभी डेटाबेस पर प्रशासनिक विशेषाधिकार प्रदान करती है। MongoDB.
  3. db पैरामीटर एडमिन डेटाबेस को निर्दिष्ट करता है, जो एक विशेष डेटाबेस के भीतर MongoDB जिसमें इस उपयोगकर्ता की जानकारी होती है।

यदि आदेश सफलतापूर्वक निष्पादित होता है, तो निम्नलिखित आउटपुट दिखाया जाएगा:

आउटपुट:

MongoDB व्यवस्थापक उपयोगकर्ता बनाएँ

आउटपुट से पता चलता है कि एक उपयोगकर्ता ने "Guru"99" नाम का उपयोगकर्ता बनाया गया था और उस उपयोगकर्ता को सभी डेटाबेस पर विशेषाधिकार प्राप्त हैं। MongoDB.

MongoDB एकल डेटाबेस के लिए उपयोगकर्ता बनाएँ

किसी एक डेटाबेस का प्रबंधन करने वाले उपयोगकर्ता को बनाने के लिए, हम ऊपर उल्लिखित समान कमांड का उपयोग कर सकते हैं, लेकिन हमें केवल "userAdmin" विकल्प का उपयोग करने की आवश्यकता है।

निम्नलिखित उदाहरण दर्शाता है कि यह कैसे किया जा सकता है:

MongoDB एकल डेटाबेस के लिए उपयोगकर्ता बनाएँ

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

	roles:[{role: "userAdmin" , db:"Employee"}]})

Code स्पष्टीकरण:

  1. पहला चरण “उपयोगकर्ता नाम” और “पासवर्ड” निर्दिष्ट करना है जिसे बनाना होगा।
  2. दूसरा चरण उपयोगकर्ता के लिए एक भूमिका निर्धारित करना है, जो इस मामले में, चूंकि उपयोगकर्ता को डेटाबेस प्रशासक होना चाहिए, इसलिए उसे "userAdmin" भूमिका सौंपी जाती है। यह भूमिका उपयोगकर्ता को केवल db विकल्प में निर्दिष्ट डेटाबेस पर प्रशासनिक विशेषाधिकार प्रदान करती है।
  3. db पैरामीटर उस डेटाबेस को निर्दिष्ट करता है जिस पर उपयोगकर्ता के पास प्रशासकीय विशेषाधिकार होने चाहिए।

यदि आदेश सफलतापूर्वक निष्पादित होता है, तो निम्नलिखित आउटपुट दिखाया जाएगा:

आउटपुट:

MongoDB एकल डेटाबेस के लिए उपयोगकर्ता बनाएँ

आउटपुट से पता चलता है कि “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जब भी कोई सुरक्षा समीक्षा होती है, तब इसका उपयोग किया जाता है।

अक्सर पूछे जाने वाले प्रश्न

जी हां। एआई सहायक एक साधारण विवरण को वैध db.createUser() कमांड में बदल सकते हैं, सही भूमिकाओं का ऐरे असाइन कर सकते हैं और इसे डेटाबेस तक सीमित कर सकते हैं। जेनरेट किए गए कमांड को चलाने से पहले हमेशा किसी गैर-उत्पादन डेटाबेस पर उसका परीक्षण करें।

जी हां। एआई-आधारित ऑडिटिंग टूल db.getUsers() आउटपुट को पढ़ सकते हैं, रूट या userAdminAnyDatabase एक्सेस रखने वाले खातों को चिह्नित कर सकते हैं और न्यूनतम विशेषाधिकार वाली भूमिकाओं का सुझाव दे सकते हैं। लाइव सिस्टम में एक्सेस रद्द करने से पहले प्रशासकों को प्रत्येक सुझाव की समीक्षा अवश्य करनी चाहिए।

userAdmin भूमिका किसी एक विशिष्ट डेटाबेस पर उपयोगकर्ताओं और भूमिकाओं का प्रबंधन करती है, जबकि userAdminAnyDatabase इंस्टेंस में मौजूद सभी डेटाबेस पर उपयोगकर्ता-प्रशासन विशेषाधिकार प्रदान करती है। सीमित नियंत्रण के लिए userAdmin का उपयोग करें और userAdminAnyDatabase का उपयोग केवल विश्वसनीय प्रशासकों के लिए करें।

use कमांड का उपयोग करके उस डेटाबेस पर जाएं जहां उपयोगकर्ता मौजूद है, फिर db.dropUser(“username”) चलाएं। MongoDB यह उस डेटाबेस से खाते और उसकी भूमिकाओं को हटा देता है। हटाने की पुष्टि करने के लिए बाद में db.getUsers() चलाएँ।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: