چطور برای دیتابیس خود یک user و pass تعریف کنیم و در برنامه مان به آن وصل شویم؟
- نفیسه افقی 2 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
اول از همه به یاد داشته باشید که:
حتماً ، حتماً ، حتماً برای database خود user و password تعیین کنید!
در غیر اینصورت، هر کسی می تواند پایگاه داده شما را دستکاری کند!
1- ابتدا وارد mongo shell شوید و سپس با دستورات زیر، یک user بسازید و به آن roll اختصاص دهید:
mongo
use admin
db.createUser(
{
user: "mdbadmin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
به جای mdbadmin
و password
، نام کاربری و رمز مورد نظر خود را قرار دهید و در قسمت db: "admin"
هم به جای admin ، نام دیتابیسی که می خواهید این یوزر به آن دسترسی داشته باشد را بنویسید.
2- Authentication را فعال کنید:
دستور زیر را بزنید (اگر ویرایشگر nano را ندارید، با sudo apt-get install nano
آن را نصب کنید، این پست را ببینید)
sudo nano /lib/systemd/system/mongod.service
سپس خط زیر را پیدا کنید:
Environment="OPTIONS=--f /etc/mongod.conf"
و auth--
را به آن اضافه کنید. بصورت زیر:
Environment="OPTIONS= --auth -f /etc/mongod.conf"
3- حالا تغییرات را ذخیره کرده و سرویس mongodb را reastart کنید:
sudo systemctl daemon-reload
sudo systemctl restart mongod
4- یوزری که ساختید را تست کنید:
دستورات زیر را وارد کنید:
mongo
use admin
show users
حالا باید با خطای زیر مواجه شوید:
با دستور زیر و با اطلاعات کاربری که در بالا ساختید، وارد شوید:
db.auth('mdbadmin', 'password')
سیستم باید عدد 1 را به شما نمایش دهد:
حالا کافی است تا مجدد دستور show users
را بزنید تا اطلاعات کاربری که ساختید را مشاهده کنید.
5- حالا می توانید با کد زیر در برنامه تان به دیتابیس وصل شوید، تمام!
MongooseModule.forRoot('mongodb://mdbadmin:password@127.0.0.1:27017/admin?authSource=admin&directConnection=true')
- نفیسه افقی 2 سال قبل پاسخ داد
- شما باید برای ارسال دیدگاه وارد شوید