sql >> Base de Datos >  >> NoSQL >> MongoDB

cómo obtener la autenticación mongodb correcta

Cada vez que configure mongodb, debe crear un usuario administrador con el rol userAdminAnyDatabase, y podrá crear este usuario incluso si mongod se inicia con --auth o no. puede crear este usuario con el siguiente comando.

use admin

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

Después de esto, si la autorización no está activada, actívela ejecutando mongod con el indicador --auth, o active la autorización en mongod.conf y reinicie el servidor mongod.

Luego inicie sesión en mongo shell con el siguiente comando con el usuario administrador

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

Vaya a la base de datos y cree un usuario con permiso de lectura y escritura.

use myapplication

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

Ahora puede usar el usuario myTester para leer/escribir en la base de datos de mi aplicación, y cada vez que cree una nueva base de datos, inicie mongo shell con el usuario myUserAdmin y cree un nuevo usuario para la nueva base de datos.

En mongodb también puede crear un solo usuario y otorgarle todos los permisos para todas las bases de datos, pero eso no debe hacerlo.

Si desea investigar más, puede consultar el siguiente enlace. https://docs.mongodb.com/v3.2/tutorial/ habilitar autenticación/

Y cuando accidentalmente bloqueó mongodb, puede desactivar la autorización del archivo mongod.conf y acceder a sus datos.