with replica keyfile mongodb authorization

replica - keyfile mongodb



La autenticación de MongoDB 3.2 falló (2)

Bueno, deberá seguir un par de pasos en secuencia para crear un usuario con éxito.

En primer lugar, debe crear un usuario administrador. Prefiero crear superusuario.

> use admin > db.createUser({user: "root", pwd: "123456", roles:["root"]})

Reinicie su servidor MongoDB y habilite la autenticación con el indicador --auth .

> mongod --auth --port 27017 --dbpath /var/lib/mongodb

Una vez que su servidor esté activo, conéctese como administrador

> mongo <host:port> -u "root" -p "123456" --authenticationDatabase "admin"

Una vez que esté conectado, cree un usuario normal. Asumiendo que el nombre de su base de datos de usuario es cd2 .

> use cd2 > db.createUser({user: "cd2", pwd: "cd2", roles:["dbOwner"]})

Si ve un mensaje de éxito, desconéctese de Mongo Shell y vuelva a conectarse con las nuevas credenciales de usuario.

> mongo <host:port>/cd2 -u "cd2" -p "cd2"

Creo un usuario con el siguiente conjunto de comandos. Esto debería crear un usuario tanto en admin db como en mi db objetivo ( c2d ):

# mongo 127.0.0.1:27017 MongoDB shell version: 3.2.6-29-g5c19788 connecting to: 127.0.0.1:27017/test > use admin switched to db admin > show collections system.users system.version > db.system.users.find() > db.createUser({user:"cd2", pwd:"cd2", roles:[{role:"dbOwner", db: "c2d"}]}) Successfully added user: { "user" : "cd2", "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] } > db.system.users.find() { "_id" : "admin.cd2", "user" : "cd2", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "4g6t9kC+godz7k6QQOfD+A==", "storedKey" : "m3tDZBQDU2Tlb1lIjLGyTHmr2QQ=", "serverKey" : "GSA4OXSod1s8mBuZBtfmXq2tlTo=" } }, "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] } > use c2d switched to db c2d > db.createUser({user:"cd2", pwd:"cd2", roles:[{role:"dbOwner", db: "c2d"}]}) Successfully added user: { "user" : "cd2", "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] } > use admin switched to db admin > db.system.users.find() { "_id" : "admin.cd2", "user" : "cd2", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "4g6t9kC+godz7k6QQOfD+A==", "storedKey" : "m3tDZBQDU2Tlb1lIjLGyTHmr2QQ=", "serverKey" : "GSA4OXSod1s8mBuZBtfmXq2tlTo=" } }, "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] } { "_id" : "c2d.cd2", "user" : "cd2", "db" : "c2d", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "vnMjnjfykVQS8ujQXeWaYw==", "storedKey" : "OYXivkmIwuTavlwTGfjrspT6j2E=", "serverKey" : "lw8xqzAaW8V4IQ9wOmQrG2VSp88=" } }, "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] }

Si intento iniciar sesión, recibo un mensaje de error:

# mongo 127.0.0.1:27017/c2d -u c2d -p c2d MongoDB shell version: 3.2.6-29-g5c19788 connecting to: 127.0.0.1:27017/c2d 2016-05-22T10:35:41.862+0100 E QUERY [thread1] Error: Authentication failed. : DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20 @(auth):6:1 @(auth):1:2 exception: login failed

Luego habilito las funciones de seguridad en el archivo conf y reinicio el servidor:

security: authorization: enabled

El error sigue siendo el mismo:

# mongo 127.0.0.1:27017/c2d -u c2d -p c2d MongoDB shell version: 3.2.6-29-g5c19788 connecting to: 127.0.0.1:27017/c2d 2016-05-22T10:37:43.713+0100 E QUERY [thread1] Error: Authentication failed. : DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20 @(auth):6:1 @(auth):1:2 exception: login failed


Nuestra experiencia con este problema en MongoDB (3.2.4) es que parece un error o una característica no documentada. Si intenta crear los usuarios y roles desde un shell remoto (no localhost), los usuarios se crean pero tan pronto como abandona el shell desaparecen (son transitorios a esa sesión) y realmente no persisten.

Solución: solo intente crear sus usuarios (sin autenticación habilitada inicialmente en MongoDB) y hágalo directamente en la consola de su servidor de base de datos (localhost).