Za każdym razem, gdy konfigurujesz mongodb, powinieneś utworzyć administratora z rolą userAdminAnyDatabase i będziesz mógł utworzyć tego użytkownika, nawet jeśli mongod jest uruchamiany z --auth lub nie. możesz utworzyć tego użytkownika za pomocą poniższego polecenia.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Następnie, jeśli autoryzacja nie jest włączona, włącz ją uruchamiając mongod z flagą --auth lub włącz autoryzację w mongod.conf i zrestartuj serwer mongod.
Następnie zaloguj się do powłoki mongo za pomocą poniższego polecenia z administratorem
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
Przejdź do bazy danych i utwórz użytkownika z uprawnieniami readWrite.
use myapplication
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "myapplication" }]
}
)
Teraz możesz użyć użytkownika myTester do odczytu/zapisu w bazie danych myapplication, a za każdym razem, gdy tworzysz nową bazę danych, uruchom powłokę mongo z użytkownikiem myUserAdmin i utwórz nowego użytkownika dla nowej bazy danych.
W mongodb możesz również utworzyć jednego użytkownika i dać mu wszystkie uprawnienia do wszystkich baz danych, ale nie powinieneś tego robić.
Jeśli chcesz dalej badać, możesz sprawdzić poniższy link. https://docs.mongodb.com/v3.2/tutorial/ włącz-uwierzytelnianie/
A gdy przypadkowo zablokujesz plik mongodb, możesz wyłączyć autoryzację z pliku mongod.conf i uzyskać dostęp do swoich danych.