Z samouczka Mongo Java
MongoDB można uruchomić w trybie bezpiecznym, w którym dostęp do baz danych jest kontrolowany przez uwierzytelnianie za pomocą nazwy i hasła. Po uruchomieniu w tym trybie każda aplikacja kliencka musi podać nazwę i hasło przed wykonaniem jakichkolwiek operacji. W sterowniku Java po prostu wykonaj następujące czynności z podłączonym obiektem mongo :
boolean auth = db.authenticate(myUserName, myPassword);
Jeśli nazwa i hasło są poprawne dla bazy danych, auth będzie prawdziwe. W przeciwnym razie będzie fałszywy. Powinieneś zajrzeć do dziennika MongoDB, aby uzyskać dalsze informacje, jeśli są dostępne.
Większość użytkowników uruchamia MongoDB bez uwierzytelniania w zaufanym środowisku.
Konfigurowanie uwierzytelniania i zabezpieczeń
Uwierzytelnianie jest przechowywane w kolekcji system.users każdej bazy danych. Na przykład, w projekcie bazy danych x, projectx.system.users będzie zawierał informacje o użytkowniku.
Powinniśmy najpierw skonfigurować użytkownika administratora dla całego procesu serwera db. Ten użytkownik jest przechowywany w specjalnej bazie danych administratora.
Jeśli żaden użytkownik nie jest skonfigurowany w admin.system.users, można uzyskać dostęp do bazy danych z interfejsu localhost bez uwierzytelniania. W ten sposób z serwera, na którym działa baza danych (a więc na hoście lokalnym), uruchom powłokę bazy danych i skonfiguruj użytkownika administracyjnego:
$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")
Mamy teraz użytkownika utworzonego dla administratora bazy danych. Zwróć uwagę, że jeśli wcześniej nie dokonaliśmy uwierzytelnienia, musimy teraz, jeśli chcemy wykonać dalsze operacje, ponieważ w admin.system.users znajduje się użytkownik.
> db.auth("theadmin", "anadminpassword")
Możemy wyświetlić istniejących użytkowników bazy danych za pomocą polecenia:
> db.system.users.find()
Teraz skonfigurujmy „zwykłego” użytkownika dla innej bazy danych.
> use projectx
> db.addUser("joe", "passwordForJoe")
Na koniec dodajmy użytkownika tylko do odczytu. (obsługiwane tylko w wersji 1.3.2+)
> use projectx
> db.addUser("guest", "passwordForGuest", true)