مقدمه
MongoDB که با نام Mongo نیز شناخته میشود، یک پایگاه داده سندمحور متنباز است که در بسیاری از برنامههای وب مدرن استفاده میشود. این دیتابیس در دسته NoSQL قرار میگیرد، زیرا برخلاف پایگاههای داده رابطهای از ساختار جدولی سنتی استفاده نمیکند و به جای آن از اسناد شبیه JSON با ساختار پویا بهره میبرد.
بهصورت پیشفرض، در MongoDB احراز هویت فعال نیست؛ یعنی هر کاربری که به سروری که MongoDB روی آن نصب شده دسترسی داشته باشد، میتواند بدون محدودیت دادهها را بخواند، اضافه کند یا حذف کند.
در این آموزش یاد میگیرید چگونه:
- یک کاربر مدیریتی در MongoDB ایجاد کنید
- احراز هویت را فعال کنید
- دسترسی کاربران را بررسی کنید تا فقط کاربران مجاز بتوانند به دیتابیس دسترسی داشته باشند
پیشنیازها
برای انجام این آموزش نیاز دارید:
- یک سرور CentOS 8
- یک کاربر غیر root با دسترسی sudo
- فایروال firewalld فعال
- نصب بودن MongoDB روی سرور
مرحله اول — ایجاد کاربر مدیریتی
از نسخه 3.0 به بعد، MongoDB فقط اتصالهای محلی را قبول میکند و به صورت پیشفرض از اینترنت در دسترس نیست؛ اما احراز هویت غیرفعال است.
یعنی هر کاربری که به سرور دسترسی داشته باشد، به کل دیتابیس دسترسی خواهد داشت.
ابتدا وارد محیط Mongo شوید:
پس از ورود، اگر احراز هویت غیرفعال باشد، هشدار زیر را مشاهده میکنید:
برای دیدن دیتابیسها:
خروجی:
config 0.000GB
local 0.000GB
اکنون به دیتابیس مدیریتی بروید:
ایجاد کاربر مدیر
دستور زیر را اجرا کنید:
{
user: “AdminSammy”,
pwd: passwordPrompt(),
roles: [
{ role: “userAdminAnyDatabase”, db: “admin” },
“readWriteAnyDatabase”
]
}
)
توضیح:
این دستور یک کاربر مدیریتی ایجاد میکند با دسترسی:
- userAdminAnyDatabase → مدیریت کاربران همه دیتابیسها
- readWriteAnyDatabase → خواندن و نوشتن در همه دیتابیسها
بعد از اجرا از شما رمز عبور میخواهد:
بعد از موفقیت:
سپس از Mongo خارج شوید:
مرحله دوم — فعال کردن احراز هویت
فایل تنظیمات MongoDB را باز کنید:
بخش زیر را پیدا کنید:
آن را به شکل زیر تغییر دهید:
authorization: “enabled”
سپس فایل را ذخیره کنید و سرویس MongoDB را ریاستارت کنید:
و وضعیت سرویس را بررسی کنید:
اگر سرویس فعال باشد خروجی شامل این عبارت است:
مرحله سوم — تست احراز هویت
ابتدا بدون نام کاربری وارد Mongo شوید:
حالا دستور زیر را اجرا کنید:
این بار هیچ خروجی نمایش داده نمیشود، چون احراز هویت فعال شده و شما لاگین نکردهاید.
از محیط خارج شوید:
ورود با کاربر مدیریتی
اکنون با کاربر مدیر وارد شوید:
رمز عبور را وارد کنید.
سپس:
این بار خروجی دیتابیسها نمایش داده میشود:
config 0.000GB
local 0.000GB
این یعنی احراز هویت با موفقیت فعال شده است.
نتیجهگیری
در این آموزش یاد گرفتید چگونه:
- در MongoDB یک کاربر مدیریتی ایجاد کنید
- احراز هویت را فعال کنید
- دسترسی کاربران بدون لاگین را محدود کنید
- ورود کاربر مدیریتی را تست کنید
با این کار، فقط کاربرانی که نام کاربری و رمز عبور معتبر دارند میتوانند به دیتابیس دسترسی داشته باشند و امنیت MongoDB شما به شکل قابل توجهی افزایش پیدا میکند.
از همراهی شما با پارمین کلود سپاسگزاریم.
نظرات کاربران