От урока за Mongo Java
MongoDB може да се изпълнява в защитен режим, където достъпът до базите данни се контролира чрез удостоверяване на име и парола. Когато се изпълнява в този режим, всяко клиентско приложение трябва да предостави име и парола, преди да извърши каквито и да е операции. В Java драйвера просто правите следното със свързания mongo обект:
boolean auth = db.authenticate(myUserName, myPassword);
Ако името и паролата са валидни за базата данни, auth ще бъде true. В противен случай ще бъде невярно. Трябва да погледнете регистъра на MongoDB за допълнителна информация, ако има такава.
Повечето потребители изпълняват MongoDB без удостоверяване в надеждна среда.
Конфигуриране на удостоверяване и защита
Удостоверяването се съхранява в колекцията system.users на всяка база данни. Например, в база данни projectx, projectx.system.users ще съдържа потребителска информация.
Първо трябва да конфигурираме администраторски потребител за целия процес на db сървъра. Този потребител се съхранява в специалната администраторска база данни.
Ако в admin.system.users не са конфигурирани потребители, човек може да получи достъп до базата данни от интерфейса на localhost без удостоверяване. По този начин, от сървъра, изпълняващ базата данни (и следователно на localhost), стартирайте обвивката на базата данни и конфигурирайте административен потребител:
$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")
Вече имаме създаден потребител за администратор на база данни. Имайте предвид, че ако преди това не сме се удостоверили, сега трябва да го направим, ако искаме да извършим допълнителни операции, тъй като има потребител в admin.system.users.
> db.auth("theadmin", "anadminpassword")
Можем да видим съществуващите потребители за базата данни с командата:
> db.system.users.find()
Сега нека конфигурираме "обикновен" потребител за друга база данни.
> use projectx
> db.addUser("joe", "passwordForJoe")
И накрая, нека добавим потребител само за четене. (поддържа се само в 1.3.2+)
> use projectx
> db.addUser("guest", "passwordForGuest", true)