Ogni volta che configuri mongodb, dovresti creare un utente amministratore con il ruolo userAdminAnyDatabase e sarai in grado di creare questo utente anche mongod viene avviato con --auth or not. puoi creare questo utente con il comando sottostante.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Dopodiché, se l'autorizzazione non è attivata, eseguirla eseguendo mongod con --auth flag, oppure attiva l'autorizzazione in mongod.conf e riavvia il server mongod.
Quindi accedi a mongo shell con il comando seguente con l'utente amministratore
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
Vai al database e crea un utente con autorizzazione readWrite.
use myapplication
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "myapplication" }]
}
)
Ora puoi usare l'utente myTester per leggere/scrivere nel database della mia applicazione e ogni volta che crei un nuovo database, avvia mongo shell con l'utente myUserAdmin e crea un nuovo utente per il nuovo database.
In mongodb puoi anche creare un singolo utente e dargli tutti i permessi per tutti i database, ma non dovresti farlo.
Se vuoi approfondire la ricerca puoi controllare il link qui sotto. https://docs.mongodb.com/v3.2/tutorial/ abilitazione-autenticazione/
E quando hai accidentalmente bloccato mongodb, puoi disattivare l'autorizzazione dal file mongod.conf e accedere ai tuoi dati.