Van Mongo Java-zelfstudie
MongoDB kan worden uitgevoerd in een veilige modus waarbij de toegang tot databases wordt gecontroleerd door middel van naam- en wachtwoordverificatie. Wanneer deze in deze modus wordt uitgevoerd, moet elke clienttoepassing een naam en wachtwoord opgeven voordat er bewerkingen kunnen worden uitgevoerd. In het Java-stuurprogramma doet u eenvoudig het volgende met het verbonden mongo-object:
boolean auth = db.authenticate(myUserName, myPassword);
Als de naam en het wachtwoord geldig zijn voor de database, is auth waar. Anders is het vals. Je zou het MongoDB-logboek moeten bekijken voor meer informatie, indien beschikbaar.
De meeste gebruikers draaien MongoDB zonder authenticatie in een vertrouwde omgeving.
Verificatie en beveiliging configureren
Verificatie wordt opgeslagen in de verzameling system.users van elke database. Op een database projectx zal projectx.system.users bijvoorbeeld gebruikersinformatie bevatten.
We moeten eerst een administrator-gebruiker configureren voor het hele db-serverproces. Deze gebruiker wordt opgeslagen onder de speciale beheerdersdatabase.
Als er geen gebruikers zijn geconfigureerd in admin.system.users, kan men toegang krijgen tot de database vanuit de localhost-interface zonder authenticatie. Dus, vanaf de server waarop de database draait (en dus op localhost), voer de databaseshell uit en configureer een administratieve gebruiker:
$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")
We hebben nu een gebruiker gemaakt voor databasebeheerder. Merk op dat als we ons niet eerder hebben geverifieerd, we dat nu moeten doen als we verdere bewerkingen willen uitvoeren, aangezien er een gebruiker is in admin.system.users.
> db.auth("theadmin", "anadminpassword")
We kunnen bestaande gebruikers voor de database bekijken met het commando:
> db.system.users.find()
Laten we nu een "gewone" gebruiker configureren voor een andere database.
> use projectx
> db.addUser("joe", "passwordForJoe")
Laten we tot slot een alleen-lezen gebruiker toevoegen. (alleen ondersteund in 1.3.2+)
> use projectx
> db.addUser("guest", "passwordForGuest", true)