Para crear usuarios vamos a usar la bases de datos admin:
use adminque sirve para almacenar datos de usuarios y sus privilegios. El primer usuario que debemos crear debe tener el privilegio 'userAdminAnyDatabase', que es el equivalente a 'root' o 'admin' (el "superusuario" que administra el sistema)
> db.createUser({user:'bertoldo', pwd:'gominolas', roles: ['userAdminAnyDatabase']})
Successfully added user: { "user" : "bertoldo", "roles" : [ "userAdminAnyDatabase" ] }
Ahora podemos salir y volver a entrar en mongo, para lo que debemos usar los datos del recién creado usuario
mongo admin -u bertoldo -p MongoDB shell version: 3.2.1 Enter password: connecting to: admin
Creamos un nuevo usuario que sí puede acceder a cualquier base de datos: > db.createUser({user:'herminia', pwd:'chufas', roles: ['readWriteAnyDatabase']}) Herminia puede escribir/leer, cambiar de base de datos etc. Sin embargo:
- No puede crear usuarios
- Sigue estando obligada a conectarse inicialmente a la base de datos admin,
que es dentro de la cual fue creado el usuario.
Para ello, el administrador escribe:
db.createUser({user:'aniceto', pwd:'regalices', roles: [{role:'readWrite', db:'repuestos'}, {role:'read', db:'clientes'}]})
Bertoldo siente que tiene poco poder. Tiene el poder de crear y modificar usuarios, pero él mismo no puede leer y escribir en cualquier base de datos. Por ello decide utilizar db.updateUser para ampliar sus propios privilegios.
db.updateUser('bertoldo', {roles: ['userAdminAnyDatabase', 'readWriteAnyDatabase']})db.updateUser tiene dos parámetros (hay más que no contamos por simplicidad):
- El nombre de usuario
- El documento de configuracińo con la misma estructura que en createUser, y que reemplaza al que existe en todas las claves en las que coincidan
No hay comentarios.:
Publicar un comentario