Real data দিয়ে MongoDB চালানোর আগে দুটো ব্যবহারিক উদ্বেগ: কিছু ভুল হলে আপনি কীভাবে আপনার data ফেরত পান, আর প্রথম স্থানে কাকে এটা স্পর্শ করার অনুমতি আছে।
mongodump একটা সম্পূর্ণ database (বা একটা একক collection) disk-এ BSON file-এর একটা সেটে export করে — একটা সাধারণ terminal থেকে চালানো হয়, mongosh-এর ভিতরে না:
mongodump --uri="mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/learningMongo" --out=./backupmongorestore --uri="mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/" ./backupMongoDB Atlas paid tier-এও automated, scheduled backup দেয় — একটা শেখার প্রজেক্টের জন্য, যেকোনো ঝুঁকিপূর্ণ পরিবর্তনের আগে ম্যানুয়ালি mongodump চালানো যথেষ্ট।
প্রতিটা গুরুতর MongoDB deployment-এ connect করতে একটা username আর password প্রয়োজন — এই কোর্স জুড়ে ব্যবহৃত connection string-এ ইতিমধ্যে দুটোই অন্তর্ভুক্ত। কোনো authentication ছাড়াই একটা production database কখনো পৌঁছানোযোগ্য রাখবেন না।
প্রতিটা user-কে পূর্ণ access দেওয়ার বদলে, Atlas (আর self-managed MongoDB) প্রতিটা database user-কে নির্দিষ্ট role assign করা সমর্থন করে:
| Role | কী করতে পারে |
|---|---|
| read | শুধু data পড়ুন, একটা database-এ |
| readWrite | Data পড়ুন আর লিখুন, একটা database-এ |
| dbAdmin | Index আর schema পরিচালনা করুন, কোনো data access না |
| atlasAdmin / root | পূর্ণ administrative নিয়ন্ত্রণ — বিশ্বস্ত account-এর একটা ছোট সংখ্যার জন্য সংরক্ষিত |
Application user-কে ন্যূনতম প্রয়োজনীয় role দিন
একটা application-এর connection string শুধু সেই role সহ একটা user ব্যবহার করা উচিত যা application আসলে দরকার — সাধারণত নিজের database-এ শুধু readWrite, কখনো একটা পূর্ণ admin account না। এই connection string যদি কখনো leak হয় তাহলে এটা ক্ষতি সীমাবদ্ধ করে।