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

crear base de datos segura en mongodb

Del tutorial de Mongo Java

MongoDB se puede ejecutar en un modo seguro donde el acceso a las bases de datos se controla mediante la autenticación de nombre y contraseña. Cuando se ejecuta en este modo, cualquier aplicación cliente debe proporcionar un nombre y una contraseña antes de realizar cualquier operación. En el controlador Java, simplemente haga lo siguiente con el objeto mongo conectado:

boolean auth = db.authenticate(myUserName, myPassword);

Si el nombre y la contraseña son válidos para la base de datos, la autenticación será verdadera. De lo contrario, será falso. Debe consultar el registro de MongoDB para obtener más información, si está disponible.

La mayoría de los usuarios ejecutan MongoDB sin autenticación en un entorno confiable.

Configuración de autenticación y seguridad

La autenticación se almacena en la colección system.users de cada base de datos. Por ejemplo, en una base de datos projectx, projectx.system.users contendrá información del usuario.

Primero debemos configurar un usuario administrador para todo el proceso del servidor db. Este usuario se almacena en la base de datos de administración especial.

Si no hay usuarios configurados en admin.system.users, uno puede acceder a la base de datos desde la interfaz localhost sin autenticarse. Por lo tanto, desde el servidor que ejecuta la base de datos (y, por lo tanto, en localhost), ejecute el shell de la base de datos y configure un usuario administrativo:

$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")

Ahora tenemos un usuario creado para el administrador de la base de datos. Tenga en cuenta que si no nos hemos autenticado previamente, ahora debemos hacerlo si deseamos realizar más operaciones, ya que hay un usuario en admin.system.users.

> db.auth("theadmin", "anadminpassword")

Podemos ver los usuarios existentes para la base de datos con el comando:

> db.system.users.find()

Ahora, configuremos un usuario "regular" para otra base de datos.

> use projectx
> db.addUser("joe", "passwordForJoe")

Finalmente, agreguemos un usuario de solo lectura. (solo compatible con 1.3.2+)

> use projectx
> db.addUser("guest", "passwordForGuest", true)