
زمانی که صحبت از پایگاههای داده میشود، شما میتوانید از پایگاههای داده رابطهای یا غیررابطهای استفاده کنید. پایگاههای داده رابطهای از دستورات SQL پیروی میکنند و دادههای آنها در جداول ساختاریافته ذخیره میشود. نمونههایی از این نوع پایگاههای داده MySQL هستند. اما پایگاههای داده غیررابطهای دادهها را در فرمتهای دیگر مانند گرافها، اسناد و غیره ذخیره میکنند، و یک نمونه خوب از آنها MongoDB است.
MongoDB یک پایگاه داده غیررابطهای است که دادهها را به صورت اسناد ذخیره میکند. این پایگاه داده منبع باز است و با افزودن مخزن آن به لیست منابع خود، میتوانید آن را روی سیستم اوبونتو ۲۴.۰۴ خود نصب کنید.
راهنمای نصب MongoDB روی اوبونتو ۲۴.۰۴
دلایل زیادی برای انتخاب مونگو دی بی به جای سایر پایگاههای داده وجود دارد. برای مثال، اگر بخواهید مقیاسپذیری و انعطافپذیری را بدست آورید، MongoDB بهترین پایگاه داده غیررابطهای است. علاوه بر این، MongoDB از سیستمهای ۳۲ و ۶۴ بیتی پشتیبانی میکند. برای نصب MongoDB، مراحل زیر را دنبال کنید.
مرحله ۱: بهروزرسانی مخزن
هنگام نصب MongoDB، رویکرد پیشنهادی این است که نسخه جدید آن را با افزودن مخزن MongoDB به لیست منابع خود دریافت کنید. بنابراین، ابتدا باید ایندکس بستهها را با بهروزرسانی آن، تازه کنیم.
$ sudo apt update
مرحله ۲: نصب بستههای وابسته
قبل از نصب MongoDB، چند بسته باید روی سیستم Ubuntu 24.04 ما نصب باشند. برخی از این بستهها قبلاً نصب شدهاند، اما شما باید دستور زیر را برای مدیریت این بستههای وابسته اجرا کنید.
$ sudo apt install gnupg wget apt-transport-https ca-certificates software-properties-common
مرحله ۳: وارد کردن کلید GPG MongoDB
هنگام نصب بستهها از یک مخزن شخص ثالث، باید یک کلید GPG وارد کنید تا اصالت بستهها را تایید کرده و از آسیب رسیدن به سیستم خود جلوگیری کنید. برای مخزن MongoDB، ما کلید GPG زیر را وارد خواهیم کرد.
$ wget -qO- https://pgp.mongodb.com/server-7.0.asc | gpg --dearmor | sudo tee /usr/share/keyrings/mongodb-server-7.0.gpg >/dev/null
کلید GPG (GNU Privacy Guard) یک روش رمزنگاری است که برای تضمین امنیت و اعتبار دادهها در انتقال اطلاعات استفاده میشود. در اینجا، کلید GPG بهطور خاص برای احراز هویت بستههای نرمافزاری به کار میرود، تا از صحت و اعتبار بستههای نصبشده مطمئن شویم.
کلید GPG چگونه کار میکند؟
۱. کلید عمومی (Public Key):
– این کلید برای رمزگشایی و تایید صحت دادهها استفاده میشود.
– در مخزنهای نرمافزاری، کلید عمومی به همراه بستهها توزیع میشود. به این معنی که بستهها هنگام دانلود از مخزنهای شخص ثالث باید توسط این کلید تایید شوند تا مطمئن شویم بسته دستکاری نشده است.
۲. کلید خصوصی (Private Key):
– کلید خصوصی فقط در دست توسعهدهنده یا ناشر بسته است و برای امضای بستههای نرمافزاری استفاده میشود.
– این کلید بهطور محرمانه نگهداری میشود و برای دیگران در دسترس نیست.
نحوه عملکرد کلید GPG در نصب بستهها
– وقتی شما بستهای را از یک مخزن شخص ثالث (مثل MongoDB) دانلود میکنید، مخزن این بسته را با استفاده از کلید خصوصی خود امضا میکند.
– سپس، سیستم شما با استفاده از کلید عمومی (که قبلاً وارد کردهاید) امضای آن بسته را بررسی میکند.
– اگر امضا معتبر باشد (یعنی بسته تغییر نکرده باشد)، بسته به راحتی نصب میشود. اما اگر امضا معتبر نباشد، سیستم هشدار میدهد که بسته دستکاری شده است و از نصب آن جلوگیری میکند.
مرحله ۴: افزودن مخزن MongoDB
گام بعدی اضافه کردن مخزن MongoDB برای نسخه Ubuntu Noble Numbat شما است. ما از دستور echo برای افزودن مخزن به لیست منابع خود استفاده کردهایم. دستور lsb_release -cs نام کد (codename) نسخه Ubuntu 24.04 را دریافت کرده و از آن برای بارگذاری مخزن مربوطه MongoDB استفاده میکند.
$ echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee -a /etc/apt/sources.list.d/mongodb-org-7.0.list
دوباره، مخزن خود را بهروزرسانی کنید تا مخزن جدید افزودهشده بارگذاری شود.
$ sudo apt update
مرحله ۵: نصب MongoDB
با اضافه شدن مخزن MongoDB به سیستم، اکنون میتوانیم MongoDB را با استفاده از دستور زیر نصب کنیم.
$ sudo apt install mongodb-org
پکیج mongodb-org در واقع یک بسته جامع است که شامل مجموعهای از ابزارها و سرویسهای لازم برای نصب و راهاندازی MongoDB روی سیستمهای مبتنی بر لینوکس (مانند Ubuntu) میشود. این بسته به شما این امکان را میدهد که MongoDB را بهطور کامل و صحیح نصب کنید و از تمام قابلیتهای آن بهرهمند شوید.
پکیج mongodb-org شامل چندین بسته مختلف است که هرکدام برای بخش خاصی از MongoDB طراحی شدهاند:
۱. mongodb-org-server:
– این بسته شامل برنامه اصلی سرور MongoDB است که دادهها را ذخیره میکند و درخواستهای ورودی (queries) را پردازش میکند. این بخش هسته اصلی عملکرد MongoDB را تشکیل میدهد.
۲. mongodb-org-mongos:
– این بسته شامل Mongos است که یک پروکسی برای توزیع درخواستها در MongoDB است. Mongos به شما این امکان را میدهد که درخواستها را در یک خوشه (Cluster) از MongoDB به درستی توزیع کنید.
– به طور خاص، این بسته برای خوشهبندی (Sharding) MongoDB کاربرد دارد، جایی که دادهها در چندین سرور مختلف توزیع میشوند.
۳. mongodb-org-shell:
– این بسته شامل mongo shell است که ابزار خط فرمان MongoDB میباشد. از این ابزار برای اجرای دستورات MongoDB و تعامل با پایگاه دادهها از طریق خط فرمان استفاده میشود.
– Mongo shell به شما این امکان را میدهد که عملیاتهای مختلفی مانند درج دادهها، جستجو، بروزرسانی و حذف دادهها را انجام دهید.
۴. mongodb-org-tools:
– این بسته شامل مجموعهای از ابزارهای مدیریتی MongoDB مانند mongodump، mongorestore، mongoexport، mongoimport و سایر ابزارهایی است که برای پشتیبانگیری، بازیابی و وارد/صادر کردن دادهها از MongoDB به کار میروند.
– این ابزارها به شما کمک میکنند تا دادهها را از MongoDB استخراج کرده یا آنها را به MongoDB وارد کنید.
نصب پکیج mongodb-org به شما این امکان را میدهد که یک نسخه کامل از MongoDB را روی سیستم خود داشته باشید که شامل تمام ابزارهای لازم برای مدیریت و استفاده از MongoDB میباشد. این پکیج بهویژه برای کاربرانی که به دنبال نصب و استفاده از MongoDB بهصورت حرفهای هستند، مفید است زیرا تمام اجزای لازم برای نصب و پیکربندی MongoDB بهطور کامل در یک پکیج قرار دارد.
مرحله ۶: فعالسازی و راهاندازی سرویس MongoDB
پس از نصب MongoDB، همچنان نیاز داریم که آن را فعال کرده و بررسی کنیم که سرویس آن به درستی در حال اجرا است. برای این کار، از سرویس mongod.service استفاده میکنیم و دستورات زیر را اجرا میکنیم.
$ sudo systemctl enable mongod.service
$ sudo systemctl start mongod.service
$ sudo systemctl status mongod.service
مرحله ۷: تست اتصال به MongoDB
ما مونگو دی بی را روی سیستم خود نصب کردهایم، اما نیاز داریم که اتصال را تست کنیم تا مطمئن شویم همه چیز به درستی کار میکند. یک روش عالی برای این کار، استفاده از ابزار mongosh برای اجرای دستور وضعیت اتصال است. اگر اتصال به پایگاه داده برقرار شود، یک وضعیت “OK” دریافت خواهیم کرد.
$ mongosh --eval 'db.runCommand({ connectionStatus: 1 })'
مرحله ۸: پیکربندی MongoDB برای امنیت بهتر
MongoDB تنظیمات پایهای دارد که برای استفادههای ساده مناسب هستند. با این حال، توصیه میشود که بخش امنیتی فایل پیکربندی آن را ویرایش کنید، بهویژه اگر از آن در یک محیط Production استفاده میکنید. فایل پیکربندی MongoDB را با استفاده از یک ویرایشگر متن باز کنید و بخش امنیتی آن را به شکل زیر ویرایش کنید.
$ sudo vim /etc/mongod.conf
mongod.conf
#security
security:
authorization: enabled
با فعالسازی گزینه authorization: enabled، سیستم احراز هویت MongoDB روشن میشود. این به این معناست که برای دسترسی به پایگاه داده، کاربران باید هویت خود را تایید کنند و فقط کاربرانی که دارای مجوز دسترسی مناسب هستند، میتوانند عملیات مختلف را انجام دهند (مانند خواندن، نوشتن، حذف یا بهروزرسانی دادهها).
بهطور پیشفرض، MongoDB در حالت بدون احراز هویت (unauthenticated) قرار دارد، یعنی هر کسی که به سرور MongoDB متصل شود، میتواند به دادهها دسترسی داشته باشد. با فعالسازی احراز هویت، نیاز است که هر کاربر برای انجام هر عملیاتی، یک حساب کاربری با سطح دسترسی مشخص داشته باشد.
فایل را ذخیره کرده، از ویرایشگر متن خارج شوید و سرویس MongoDB را ریستارت کنید.
$ sudo systemctl restart mongod.service
مرحله ۹: ایجاد یک کاربر مدیر
بهعنوان بخشی از تقویت امنیت پایگاه داده، شما نیاز دارید که یک کاربر مدیریتی ایجاد کنید. برای این کار، با استفاده از دستور زیر به شل MongoDB دسترسی پیدا کنید و پایگاه دادهای که میخواهید از آن استفاده کنید را انتخاب کنید.
$ mongosh
$ use admin
سپس یک کاربر مدیر برای پایگاه داده خود ایجاد کرده و نام کاربری و رمز عبور او را تنظیم کنید. علاوه بر این، نقشهای کاربر را تعیین کنید و در نهایت از شل خارج شوید.
> db.createUser({
user: “admin”,
pwd: “yourPassword”,
roles: [{ role: “root”, db: “admin” }] })
admin> quit()
برای تایید اینکه کاربر مدیر شما با موفقیت ایجاد شده است، با استفاده از نام کاربری و رمز عبور تعیینشده وارد MongoDB شوید.
$ mongosh -u username -p
پس از وارد کردن رمز عبور خود، باید دسترسی به MongoDB را به دست آورید.
ساخت دیتابیس در مونگو دی بی
برای ایجاد یک پایگاه داده در MongoDB، ایجاد یک کاربر برای آن و اعطای دسترسیها به آن، مراحل زیر را دنبال کنید:
۱. دسترسى به شل MongoDB
ابتدا با اجرای دستور زیر به شل MongoDB وارد شوید:
$ mongosh
۲. ایجاد پایگاه داده
MongoDB به طور خودکار زمانی که برای اولین بار از یک پایگاه داده استفاده میکنید، آن را ایجاد میکند. برای ایجاد یک پایگاه داده جدید، کافیست به آن پایگاه داده سوئیچ کنید (اگر پایگاه داده وجود نداشته باشد، MongoDB آن را زمانی که دادهای وارد کنید، ایجاد خواهد کرد). به عنوان مثال، برای ایجاد پایگاه دادهای به نام mydatabase:
> use mydatabase
این دستور پایگاه داده mydatabase را ایجاد کرده و به آن سوئیچ میکند.
۳. ایجاد یک کاربر برای پایگاه داده
پس از ایجاد پایگاه داده، میتوانید یک کاربر با دسترسیهای مشخص برای آن پایگاه داده ایجاد کنید. برای ایجاد کاربر، دستور زیر را اجرا کنید:
> db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [{ role: "readWrite", db: "mydatabase" }]
})
user: نام کاربری برای کاربر جدید (مثلاً “myuser”).
pwd: رمز عبور برای کاربر جدید (مثلاً “mypassword”).
roles: نقشی که به کاربر اختصاص میدهید. در این مثال، کاربر نقش readWrite را در پایگاه داده mydatabase دریافت میکند که به او اجازه میدهد دادهها را بخواند و بنویسد.
۴. اعطای دسترسیها به کاربر
MongoDB نقشهای مختلفی برای تعیین اقدامات قابل انجام توسط کاربر ارائه میدهد. برخی از نقشهای رایج عبارتند از:
readWrite: به کاربر اجازه میدهد که به پایگاه داده دسترسی خواندن و نوشتن داشته باشد.
read: به کاربر اجازه میدهد که فقط دادهها را بخواند.
dbAdmin: به کاربر اجازه میدهد که اقداماتی مدیریتی بر روی پایگاه داده انجام دهد، مانند ایندکسگذاری، اعتبارسنجی اسکیمای داده و غیره.
userAdmin: به کاربر اجازه میدهد که کاربران و نقشها را در پایگاه داده مدیریت کند.
اگر میخواهید مجموعهای متفاوت از دسترسیها را اختصاص دهید، کافی است فیلد roles را در زمان ایجاد کاربر تغییر دهید.
برای مثال، برای دادن دسترسی مدیریتی کامل به پایگاه داده، میتوانید از نقش dbAdmin استفاده کنید:
> db.createUser({
user: "myadminuser",
pwd: "adminpassword",
roles: [{ role: "dbAdmin", db: "mydatabase" }]
})
یا میتوانید چند نقش را به کاربر اختصاص دهید، برای مثال ترکیبی از readWrite و dbAdmin:
> db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [
{ role: "readWrite", db: "mydatabase" },
{ role: "dbAdmin", db: "mydatabase" }
]
})
۵. بررسی کاربر ایجاد شده
برای بررسی اینکه کاربر با موفقیت ایجاد شده است، از دستور زیر استفاده نمایید:
> show users
این دستور فهرستی از کاربران پایگاه داده فعلی را همراه با نقشهای آنها نشان میدهد.
۶. آزمایش کاربر
پس از ایجاد کاربر، میتوانید با استفاده از نام کاربری و رمز عبور ایجاد شده، وارد MongoDB شوید:
$ mongosh -u myuser -p --authenticationDatabase mydatabase
اگر کاربر با موفقیت ایجاد شده باشد، باید قادر باشید با ورود به سیستم و انجام عملیات مطابق با نقشهای اختصاص داده شده، وارد شوید.




