Wow così tante risposte complicate / confuse qui.
Questo è dalla v3.4 .
Risposta breve.
1) Avviare MongoDB senza controllo di accesso.
mongod --dbpath /data/db
2) Connettersi all'istanza.
mongo
3) Creare l'utente.
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
4) Arrestare l'istanza MongoDB e avviarla nuovamente con il controllo di accesso.
mongod --auth --dbpath /data/db
5) Connettiti e autenticati come utente.
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})
Risposta lunga: leggi questo se vuoi capire correttamente.
È davvero semplice Mi stupirò di seguito https://docs.mongodb.com/manual/tutorial/enable-authentication/
Se vuoi saperne di più su ciò che i ruoli effettivamente fanno, leggi di più qui: https://docs.mongodb.com/manual/reference/built-in-roles/
1) Avviare MongoDB senza controllo di accesso.
mongod --dbpath /data/db
2) Connettersi all'istanza.
mongo
3) Creare l'amministratore utente. Di seguito viene creato un amministratore utente nel admin
database di autenticazione. L'utente è dbOwner
sul some_db
database e NON sul admin
database, questo è importante da ricordare.
use admin
db.createUser(
{
user: "myDbOwner",
pwd: "abc123",
roles: [ { role: "dbOwner", db: "some_db" } ]
}
)
O se si desidera creare un amministratore che è admin su qualsiasi database:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
4) Arrestare l'istanza MongoDB e avviarla nuovamente con il controllo di accesso.
mongod --auth --dbpath /data/db
5) Connettersi e autenticarsi come amministratore utente verso il admin
database di autenticazione, NON verso il some_db
database di autenticazione. L'amministratore utente è stato creato nel admin
database di autenticazione, l'utente non esiste nel some_db
database di autenticazione.
use admin
db.auth("myDbOwner", "abc123")
Ora sei autenticato come dbOwner
sopra il some_db
database. Quindi ora se desideri leggere / scrivere / fare cose direttamente nel some_db
database puoi cambiarlo.
use some_db
//...do stuff like db.foo.insert({x:1})
// remember that the user administrator had dbOwner rights so the user may write/read, if you create a user with userAdmin they will not be able to read/write for example.
Altre informazioni sui ruoli: https://docs.mongodb.com/manual/reference/built-in-roles/
Se desideri creare altri utenti che non sono amministratori utenti e che sono solo utenti normali, continua a leggere di seguito.
6) Creare un utente normale. Questo utente verrà creato nel some_db
database di autenticazione in basso.
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
7) Esci dalla shell mongo, riconnetti, autentica come utente.
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})