with usuarios usuario puerto password datos crear creacion contraseña activar authentication mongodb

authentication - usuarios - puerto 27017 mongodb



Cómo asegurar MongoDB con nombre de usuario y contraseña (12)

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 de MongoDB e hice lo siguiente:

use admin db.addUser(''theadmin'', ''12345''); db.auth(''theadmin'',''12345'');

Después de eso, salí y corrí mongo de nuevo. Y no necesito contraseña para acceder a ella. Incluso si me conecto a la base de datos de forma remota, no se me solicita el nombre de usuario ni 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 .


Aquí hay un código javascript para agregar usuarios.

  1. Comience mongod con --auth = true

  2. Acceda a la base de datos de administración desde mongo shell y pase el archivo javascript.

    mongo admin "NombreDeArchivo.js"

    "Filename.js"

    // Adding admin user db.addUser("admin_username", " admin_password"); // Authenticate admin user db.auth("admin_username ", " admin_password "); // use database code from java script db = db.getSiblingDB("newDatabase"); // Adding newDatabase database user db.addUser("database_username ", " database_ password ");

  3. Ahora que la adición del usuario está completa, podemos verificar el acceso a la base de datos desde mongo shell



Esta respuesta es para Mongo 3.2.1 Reference

Terminal 1:

$ mongod --auth

Terminal 2:

db.createUser({user:"admin_name", pwd:"1234",roles:["readWrite","dbAdmin"]})

Si desea agregar sin roles (opcional):

db.createUser({user:"admin_name", pwd:"1234", roles:[]})

Para comprobar si está autenticado o no:

db.auth("admin_name", "1234")

debería darte:

1

otra cosa

Error: Authentication failed. 0


Estos pasos me han funcionado:

  1. escribe mongod --port 27017 en cmd
  2. a continuación, conecte a mongo shell: mongo --port 27017
  3. cree el usuario admin: use admin db.createUser ({user: "myUserAdmin", pwd: "abc123", roles: [{role: "userAdminAnyDatabase", db: "admin"}]})
  4. desconectar mongo shell
  5. reinicie el mongodb: mongod --auth --port 27017
  6. iniciar mongo shell: mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
  7. Para autenticarse después de conectarse, conecte el shell mongo al mongod: mongo --port 27017
  8. cambie a la base de datos de autenticación: use admin db.auth ("myUserAdmin", "abc123"

La mejor práctica para conectarse a mongoDB como sigue:

  1. Después de la instalación inicial,

    use admin

  2. A continuación, ejecute el siguiente script para crear el 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.

  1. iniciar sesión en el db.admin usando

    mongo -u YourUserName -p YourPassword admin

  2. Después de iniciar sesión, puede crear el 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 crea en MongoDB


Primero ejecute mongoDB en la terminal usando

mongod

ahora ejecuta mongo shell usa los siguientes comandos

use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )

Reinicie la instancia de MongoDB con control de acceso.

mongod --auth

Ahora autentíquese desde la línea de comando usando

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

Lo leo de

https://docs.mongodb.com/manual/tutorial/enable-authentication/


Primero, elimine el comentario de la línea que comienza con #auth=true 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


después de crear un nuevo usuario, no olvide grant permiso de read/write/root al usuario. puedes probar el

cmd: db.grantRolesToUser(''yourNewUsername'',[{ role: "root", db: "admin" }])



mongod iniciar mongod con la opción --auth después de configurar el usuario.

Desde el sitio de MongoDB:

Ejecute la base de datos (proceso mongod) con la opción --auth para habilitar la seguridad. Debe haber agregado un usuario a la base de datos de administración antes de iniciar el servidor con --auth , o agregar el primer usuario desde la interfaz localhost.

Autenticación MongoDB


Creación de usuarios con contraseña para una base de datos específica para asegurar el acceso a la base de datos:

use dbName db.createUser( { user: "dbUser", pwd: "dbPassword", roles: [ "readWrite", "dbAdmin" ] } )


Wow tantas respuestas complicadas / confusas aquí.

Esto es a partir de v3.4 .

Respuesta corta.

1) Iniciar MongoDB sin control de acceso.

mongod --dbpath /data/db

2) Conectar a la instancia.

mongo

3) Crea el usuario.

use some_db db.createUser( { user: "myNormalUser", pwd: "xyz123", roles: [ { role: "readWrite", db: "some_db" }, { role: "read", db: "some_other_db" } ] } )

4) Detenga la instancia de MongoDB y vuelva a iniciarla con el control de acceso.

mongod --auth --dbpath /data/db

5) Conectar y autenticar como usuario.

use some_db db.auth("myNormalUser", "xyz123") db.foo.insert({x:1}) use some_other_db db.foo.find({})

Respuesta larga: lee esto si quieres entender correctamente.

Es realmente simple Me quedo con 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) Iniciar MongoDB sin control de acceso.

mongod --dbpath /data/db

2) Conectar a la instancia.

mongo

3) Crear el administrador de usuarios. Lo siguiente crea un administrador de usuarios en la base de datos de autenticación del admin . El usuario es un dbOwner sobre la some_db datos some_db y NO sobre la base de datos de admin , es importante recordar esto.

use admin db.createUser( { user: "myDbOwner", pwd: "abc123", roles: [ { role: "dbOwner", db: "some_db" } ] } )

O si desea crear un administrador que sea admin sobre cualquier base de datos:

use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )

4) Detenga la instancia de MongoDB y vuelva a iniciarla con el control de acceso.

mongod --auth --dbpath /data/db

5) Conéctese y autentíquese como administrador de usuarios hacia la base de datos de autenticación del admin , NO hacia la base de datos de autenticación some_db . El administrador del usuario se creó en la base de datos de autenticación del admin , el usuario no existe en la base de datos de autenticación some_db .

use admin db.auth("myDbOwner", "abc123")

Ahora está autenticado como dbOwner en la base de datos some_db . Así que ahora, si desea leer / escribir / hacer cosas directamente hacia la some_db datos some_db , puede cambiarlo.

use some_db //...do stuff like db.foo.insert({x:1}) // remember that the user administrator had dbOwner rights so the user may write/read, if you create a user with userAdmin they will not be able to read/write for example.

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) Crea un usuario normal. Este usuario se creará en la base de datos de autenticación some_db a continuación.

use some_db db.createUser( { user: "myNormalUser", pwd: "xyz123", roles: [ { role: "readWrite", db: "some_db" }, { role: "read", db: "some_other_db" } ] } )

7) Salga del shell mongo, vuelva a conectarse, autentíquese como usuario.

use some_db db.auth("myNormalUser", "xyz123") db.foo.insert({x:1}) use some_other_db db.foo.find({})