Cloud Hosting

Tutorial MongoDB: creación de base de datos, conexión remota y securización.

En este tutorial paso a paso veremos como configurar tu servidor con MongoDB en forma segura. También aprenderás a crear bases de datos y usuarios con permisos específicos. Finalmente veremos como conectarnos en forma remota.

 

1
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 Configuración de tu cloud server y luego en la pestaña Firewall. Una vez allí 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 aplicación, se conectarán al servidor de MongoDB, utiliza 0.0.0.0/0. Así permitirás que cualquier IP pueda conectarse a MongoDB. Sin embargo, te recomendamos crear reglas con las IPs (o rango de IP’s) específicas para brindarle mayor seguridad a tus bases de dato.

 

firewall-1

firewall-2

 

2
Verificar la versión de MongoDB

Accede a través de la consola SSH a tu servidor y verifica la versión de MongoDB con el siguiente comando:

 

mongod --version

 

Conocer la versión te servirá más adelante si es que decides utilizar un cliente con interfaz gráfica para administrar tus bases de datos y usuarios, ya que no todas tienen soporte para las últimas versiones de MongoDB.

 

3
Crear un usuario administrador

Nuevamente a través 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 está configurado.

 

mongo --port 20017

use admin

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

 

Cambia los datos “user” y “pwd” del código de arriba, con el usuario y contraseña que decidas utilizar.

consola-2

 

4
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 configuración para restringir el acceso mediante autenticación.

Para ellos editamos el archivo mongod.conf, quitando el comentario de la línea donde se encuentra auth = true

 

mcedit /etc/mongod.conf

 

consola-1

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 autenticándonos como el usuario administrador que creamos en el paso 3. Para ellos utilizamos el usuario y contraseña que elegimos en lugar de “myServerAdmin” y “mipassword”.

 

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

 

 

5
Crear una Base de Datos y un usuario para la misma

Llegó el momento esperado, el de crear la base de datos que utilizaremos para nuestra aplicación. A diferencia de servidores como MySQL donde hay un comando explícito para crearlas, en MongoDB las base de datos se crean insertando el primer contenido (una colección) o creando un usuario para la misma.

En nuestro caso crearemos un base de datos llamada test agregándole un usuario llamado myDbAdmin.

 

use test

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

 

consola-3

 

Ahora, para acceder a la base de datos recién creada utilizamos el siguiente comando:

 

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

 

 

6
Insertar los primeros datos (colección)

Ahora veremos, a través de un ejemplo, como insertar una colección 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 }

 

consola-4

 

 

7
Aprovechar una interfaz gráfica

Si bien la consola MongoShell nos permite hacer prácticamente de todo con nuestro MongoDB, utilizar interfaces gráficas en la administración de bases de datos simplifica mucho la tarea.

En el mercado existen muchos clientes de administración para MongoDB y la gran mayoría 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 quedaría

 

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

 

Atención al Cliente

24x7x365

A TU LADO TODO EL TIEMPO

  • Sin límite de consultas y acceso al historial.
  • Personal altamente capacitado.
  • Acceso a tutoriales, FAQs y seminarios sin cargo.
  • Soporte en español, inglés y portugués.
Administrar mi Cuenta

Conoce las distintas opciones y herramientas que te ofrece tu Área de Cliente.

CLICK AQUÍ
Mesa de Ayuda

Cómo usar el servicio de soporte y resolver las consultas más comunes.

CLICK AQUÍ
Pagos y vencimientos

Información para conocer tu estado de cuenta, futuros vencimientos y renovaciones.

CLICK AQUÍ