MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

come ottenere l'autenticazione mongodb corretta

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.