Quiero configurar la autenticación de nombre de usuario y contraseña para mi instancia de MongoDB, de modo que cualquier acceso remoto solicite el nombre de usuario y la contraseña. Probé el tutorial del sitio MongoDB e hice lo siguiente:
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
Después de eso, salí y corrí mongo nuevamente. Y no necesito contraseña para acceder. Incluso si me conecto a la base de datos de forma remota, no se me solicita el nombre de usuario y la contraseña.
ACTUALIZACIÓN Aquí está la solución que terminé usando
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
El nombre de usuario y la contraseña funcionarán de la misma manera para mongodump
y mongoexport
.
authentication
mongodb
murvinlai
fuente
fuente
Respuestas:
Debe comenzar
mongod
con la--auth
opción después de configurar el usuario.Desde el sitio MongoDB:
Autenticación MongoDB
fuente
admin
, use otra base de datos e intente nuevamente. Solo un userAdmin (AnyDatabase) puede conectarseadmin
.Wow tantas respuestas complicadas / confusas aquí.
Esto es a partir de v3.4 .
Respuesta corta.
1) Inicie MongoDB sin control de acceso.
2) Conéctese a la instancia.
3) Crear el usuario.
4) Detenga la instancia de MongoDB y vuelva a iniciarla con control de acceso.
5) Conéctese y autentíquese como usuario.
Respuesta larga: lea esto si desea comprenderlo adecuadamente.
Es muy simple Voy a simplificar lo siguiente: https://docs.mongodb.com/manual/tutorial/enable-authentication/
Si desea obtener más información sobre lo que realmente hacen los roles, lea más aquí: https://docs.mongodb.com/manual/reference/built-in-roles/
1) Inicie MongoDB sin control de acceso.
2) Conéctese a la instancia.
3) Crear el administrador del usuario. Lo siguiente crea un administrador de usuarios en la
admin
base de datos de autenticación. El usuario estádbOwner
sobre lasome_db
base de datos y NO sobre laadmin
base de datos, es importante recordar esto.O si desea crear un administrador que sea administrador sobre cualquier base de datos:
4) Detenga la instancia de MongoDB y vuelva a iniciarla con control de acceso.
5) Conéctese y autentíquese como administrador del usuario hacia la
admin
base de datos de autenticación, NO hacia lasome_db
base de datos de autenticación. El administrador del usuario se creó en laadmin
base de datos de autenticación, el usuario no existe en lasome_db
base de datos de autenticación.Ahora está autenticado como
dbOwner
sobre lasome_db
base de datos. Entonces, si desea leer / escribir / hacer cosas directamente hacia lasome_db
base de datos, puede cambiar a ella.Más sobre roles: https://docs.mongodb.com/manual/reference/built-in-roles/
Si desea crear usuarios adicionales que no sean administradores de usuarios y que sean usuarios normales, continúe leyendo a continuación.
6) Crear un usuario normal. Este usuario se creará en la
some_db
base de datos de autenticación a continuación.7) Salga de la consola mongo, vuelva a conectarse, autentíquese como usuario.
fuente
Primero,
#auth=true
descomente la línea que comienza en su archivo de configuración mongod (ruta predeterminada/etc/mongo.conf
). Esto habilitará la autenticación para mongodb.Luego, reinicie mongodb:
sudo service mongod restart
fuente
/etc/mongod.conf
no es/etc/mongo.conf
Esta respuesta es para Mongo 3.2.1 Referencia
Terminal 1:
Terminal 2:
si desea agregar sin roles (opcional):
para verificar si está autenticado o no:
debería darte:
más:
fuente
use admin
antes, de locreateUser
contrario me dio un error.Aquí hay un código javascript para agregar usuarios.
Comience
mongod
con--auth = true
Acceda a la base de datos de administración desde mongo shell y pase el archivo javascript.
mongo admin "Filename.js"
"Filename.js"
Ahora que la adición del usuario está completa, podemos verificar el acceso a la base de datos desde mongo shell
fuente
https://docs.mongodb.com/manual/reference/configuration-options/#security.authorization
Edite el archivo de configuración de mongo;
Agrega la línea:
Reiniciar el servicio
Saludos
fuente
Primero ejecute mongoDB en la terminal usando
ahora ejecuta mongo shell usa los siguientes comandos
Reinicie la instancia de MongoDB con control de acceso.
Ahora autentícate desde la línea de comando usando
Lo lei de
https://docs.mongodb.com/manual/tutorial/enable-authentication/
fuente
MongoDB Enterprise > db.system.users.find() { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SC RAM-SHA-1" : { "iterationCount" : 10000, "salt" : "k96PCEflidMY5seVju+gAw==", "s toredKey" : "CabQTnJtny7cv0wT5X8oX9QOn3A=", "serverKey" : "RJyCdnlIhyIfj2+d44L61 bYK+MU=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdmin", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "root", "db" : "admin" } ] }
todavía la autenticación fallaroot
role para proporcionar acceso a las operaciones y todos los recursos de los siguientes roles combinados ... role rootEsto es lo que hice en Ubuntu 18.04:
fuente
Podrías cambiar
/etc/mongod.conf
.antes de
#security:
Después
Entonces
sudo service mongod restart
fuente
Siga los pasos a continuación en orden
mongod --auth
en el caso de Linux puede editar el/etc/mongod.conf
archivo para agregarlosecurity.authorization : enabled
y luego reiniciar el servicio mongdmongo -u "admin" -p "admin123" --authenticationDatabase "admin"
. Eso esPuede consultar esta publicación para obtener más detalles y aprender a conectarse con la mangosta.
fuente
Creación de usuario con contraseña para una base de datos específica para asegurar el acceso a la base de datos:
fuente
Tendrá que cambiar a la base de datos en la que desea que el usuario (no el administrador db) ...
use mydatabase
Consulte esta publicación para obtener más ayuda ... https://web.archive.org/web/20140316031938/http://learnmongo.com/posts/quick-tip-mongodb-users/
fuente
Estos pasos me funcionaron:
fuente
La mejor práctica para conectarse a mongoDB de la siguiente manera:
Después de la instalación inicial,
use admin
Luego ejecute el siguiente script para crear un usuario administrador
db.createUser( { user: "YourUserName", pwd: "YourPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "clusterAdmin", db: "admin" } ] })
el siguiente script creará el usuario administrador para la base de datos.
inicie sesión en db.admin usando
mongo -u YourUserName -p YourPassword admin
Después de iniciar sesión, puede crear un número N de la base de datos con la misma credencial de administrador o diferente repitiendo el 1 al 3.
Esto le permite crear diferentes usuarios y contraseñas para las diferentes colecciones que está creando en MongoDB
fuente
después de crear un nuevo usuario, no olvide otorgarle
grant
read/write/root
permiso al usuario. puedes probar elcmd: db.grantRolesToUser('yourNewUsername',[{ role: "root", db: "admin" }])
fuente