sql >> Databáze >  >> NoSQL >> MongoDB

jak získat správné ověření mongodb

Kdykoli nastavujete mongodb, měli byste vytvořit administrátora s rolí userAdminAnyDatabase a tohoto uživatele budete moci vytvořit, i když mongod začíná s --auth nebo ne. tohoto uživatele můžete vytvořit níže uvedeným příkazem.

use admin

db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Poté, pokud autorizace není zapnutá, zapněte ji spuštěním mongod s příznakem --auth nebo zapněte autorizaci v mongod.conf a restartujte server mongod.

Poté se přihlaste do mongo shell pomocí níže uvedeného příkazu s uživatelem admin

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

Přejděte do databáze a vytvořte uživatele s oprávněním readWrite.

use myapplication

db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "myapplication" }]
  }
)

Nyní můžete použít uživatele myTester ke čtení/zápisu do databáze myapplication a kdykoli vytvoříte novou databázi, spusťte mongo shell s uživatelem myUserAdmin a vytvořte nového uživatele pro novou databázi.

V mongodb můžete také vytvořit jednoho uživatele a dát mu všechna oprávnění pro všechny databáze, ale to byste neměli dělat.

Pokud chcete dále zkoumat, můžete se podívat na níže uvedený odkaz. https://docs.mongodb.com/v3.2/tutorial/ enable-authentication/

A když omylem uzamknete mongodb, můžete vypnout autorizaci ze souboru mongod.conf a získat přístup ke svým datům.




  1. mongorestore se nezdařilo:žádné dostupné servery

  2. Použití COD a CML k vytváření aplikací, které předpovídají skladová data

  3. Vrátí výsledek zřetězení zpětných volání volaný v rámci smyčky

  4. NodeJS + MongoDB:insertOne() - získat vložený dokument z result.ops