Aplica a: Cloud Server con MongoDB instalado · Tiempo estimado: 15 min
¿Qué vas a lograr?
Configurar MongoDB con autenticación, crear bases de datos y usuarios con permisos específicos, y conectarte de forma remota de manera segura.
Paso 1 — Habilitar el puerto 27017 en el Firewall
El puerto 27017 de MongoDB está cerrado por defecto. Creá una regla en el Firewall del Cloud Server para abrirlo — consultá Cloud & IaaS — Configurar el Firewall del Cloud Server.
Si no sabés desde qué IPs se conectará tu aplicación, podés usar 0.0.0.0/0 para permitir cualquier IP. Se recomienda especificar IPs concretas para mayor seguridad.
Paso 2 — Verificar la versión de MongoDB
Conectáte al servidor por SSH y ejecutá:
mongod --version
Conocer la versión es útil si vas a usar un cliente gráfico, ya que no todos tienen soporte para las últimas versiones.
Paso 3 — Crear un usuario administrador
Abrí MongoShell y creá un usuario con permisos de administración sobre cualquier base de datos:
mongo --port 27017
use admin
db.createUser(
{
user: "myServerAdmin",
pwd: "mipassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
);
Reemplazá myServerAdmin y mipassword con el usuario y contraseña que elijas.
Paso 4 — Restringir el acceso no autenticado
Por defecto MongoDB permite el acceso sin autenticación. Editá el archivo de configuración para requerirla:
mcedit /etc/mongod.conf
Quitá el comentario de la línea auth = true y guardá el archivo.
Luego reiniciá el servicio:
service mongod restart
A partir de ahora podés acceder a MongoShell autenticándote como administrador:
mongo --port 20017 -u myServerAdmin -p mipassword --authenticationDatabase admin
Paso 5 — Crear una base de datos y un usuario
En MongoDB las bases de datos se crean al insertar el primer contenido o al crear un usuario para las mismas. Para crear una base de datos llamada test con un usuario con permisos de lectura y escritura:
use test
db.createUser(
{
user: "myDbAdmin",
pwd: "mipassword",
roles: [ { role: "readWrite", db: "test" } ]
}
);
Para acceder a esa base de datos:
mongo --port 27017 -u myDbAdmin -p mipassword --authenticationDatabase test
Paso 6 — Insertar los primeros datos
use test
db.personal.save({nombre:'Ariel Perez',edad:23})
db.personal.save({nombre:'Diego Angel',edad:32})
db.personal.find()
El resultado muestra los documentos insertados con su _id generado automáticamente:
{ "_id" : ObjectId("55d87309d6b60ea1b22fb2ad"), "nombre" : "Ariel Perez", "edad" : 23 }
{ "_id" : ObjectId("55d87311d6b60ea1b22fb2ae"), "nombre" : "Diego Angel", "edad" : 32 }Usar un cliente gráfico
Si preferís administrar MongoDB desde una interfaz gráfica, existen clientes gratuitos como Mongo Management Studio o MongoChef. La cadena de conexión sigue este formato:
mongodb://usuario:password@host:puerto/nombre_db
Por ejemplo:
mongodb://myDbAdmin:[email protected]:27017/test



