Você está na página 1de 9

Cloud Hosting

Inicio > Cloud Hosting > Configurar mi Cloud Hosting >

Tutorial MongoDB: creacion de base de datos, conexion


remota y securizacion.
Tags: Base de datos, Cloud Server, Configuracion, MongoDB, NoSQL, seguridad

En este tutorial paso a paso veremos como configurar tu servidor con MongoDB en forma segura. Tambien aprenderas a
crear bases de datos y usuarios con permisos especificos. Finalmente veremos como conectarnos en forma remota.

Habilitar el puerto 20017 en el firewall


Para mayor seguridad, el puerto utilizado por MongoDB en tu Cloud Server es el 20017. Por defecto
este se encuentra cerrado a nivel de firewall. Para abrir el acceso ingresa en la Configuracion de tu
cloud server y luego en la pestana Firewall. Una vez alli crea una regla que permita el acceso de
conexiones externas al puerto 20017.
Si desconoces cuales son las IPs desde las cuales, tu o tu aplicacion, se conectaran al servidor de
MongoDB, utiliza 0.0.0.0/0. Asi permitiras que cualquier IP pueda conectarse a MongoDB. Sin
embargo, te recomendamos crear reglas con las IPs (o rango de IPs) especificas para brindarle mayor
seguridad a tus bases de dato.

Verificar la version de MongoDB


Accede a traves de la consola SSH a tu servidor y verifica la version de MongoDB con el siguiente
comando:

mongod --version

Conocer la version te servira mas adelante si es que decides utilizar un cliente con interfaz grafica para
administrar tus bases de datos y usuarios, ya que no todas tienen soporte para las ultimas versiones de
MongoDB.

Crear un usuario administrador


Nuevamente a traves de la consola SSH y utilizando los siguientes comandos, creamos un usuario con
los permisos necesarios para administrar cualquier base de datos del servidor MongoDB.
Para ellos ejecutamos una instancia de MongoShell y lo hacemos en el puerto en el cual esta
configurado.

mongo --port 20017


use admin
db.createUser(
{
user: "myServerAdmin",
pwd: "mipassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
);

Cambia los datos user y pwd del codigo de arriba, con el usuario y contrasena que decidas utilizar.

Restringir el acceso No Autenticado


Por defecto, es posible acceder al servidor de MongoDB sin necesidad de autenticarse y esto genera
problemas de seguridad. Ahora que ya disponemos de un usuario con los privilegios suficientes,
cambiaremos la configuracion para restringir el acceso mediante autenticacion.
Para ellos editamos el archivo mongod.conf, quitando el comentario de la linea donde se encuentra
auth = true

mcedit /etc/mongod.conf

Una vez guardado el cambio, reiniciamos el servicio de MongoDB para que los mismos hagan efecto.

service mongod restart

A partir de ahora podremos acceder a la consola MongoShell autenticandonos como el usuario


administrador que creamos en el paso 3. Para ellos utilizamos el usuario y contrasena que elegimos en
lugar de myServerAdmin y mipassword.

mongo --port 20017 -u myServerAdmin -p mipassword --authenticationDatabase admin

Crear una Base de Datos y un usuario para la misma

Llego el momento esperado, el de crear la base de datos que utilizaremos para nuestra aplicacion. A
diferencia de servidores como MySQL donde hay un comando explicito para crearlas, en MongoDB
las base de datos se crean insertando el primer contenido (una coleccion) o creando un usuario para la
misma.
En nuestro caso crearemos un base de datos llamada test agregandole un usuario llamado
myDbAdmin.

use test
db.createUser(
{
user: "myDbAdmin",
pwd: "mipassword",
roles: [ { role: "readWrite", db: "test" } ]
}
);

Ahora, para acceder a la base de datos recien creada utilizamos el siguiente comando:

mongo --port 20017 -u myDbAdmin -p mipassword --authenticationDatabase test

Insertar los primeros datos (coleccion)


Ahora veremos, a traves de un ejemplo, como insertar una coleccion de datos en la base que acabamos
de crear.

use test
db.personal.save({nombre:'Ariel Perez',edad:23})
db.personal.save({nombre:'Diego Angel',edad:32})
db.personal.find()

Al hacerlo, veremos en pantalla los siguientes resultados:

{ "_id" : ObjectId("55d87309d6b60ea1b22fb2ad"), "nombre" : "Ariel Perez", "edad" : 23 }{ "_id" :


ObjectId("55d87311d6b60ea1b22fb2ae"), "nombre" : "Diego Angel", "edad" : 32 }

Aprovechar una interfaz grafica


Si bien la consola MongoShell nos permite hacer practicamente de todo con nuestro MongoDB,
utilizar interfaces graficas en la administracion de bases de datos simplifica mucho la tarea.
En el mercado existen muchos clientes de administracion para MongoDB y la gran mayoria son pagos.
Algunos de los gratuitos que podemos sugerirte son Mongo Management Studio o MongoChef

mongodb://usuario:password@host:puerto/nombre_db

y en nuestro ejemplo quedaria

mongodb://myDbAdmin:mipassword@200.58.96.113:20017/test