Primero instalé MongoDB 3.4.1 hoy. Pero cuando lo inicio y uso el shell de MongoDB, me da estas advertencias a continuación:
C:\Users\hs>"C:\Program Files\MongoDB\Server\3.4\bin\mongo.exe MongoDB shell version v3.4.1 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.1 Server has startup warnings: 2017-01-12T21:19:46.941+0800 I CONTROL [initandlisten] 2017-01-12T21:19:46.942+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2017-01-12T21:19:46.942+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2017-01-12T21:19:46.942+0800 I CONTROL [initandlisten] mi computadora es Microsoft Windows [ version 10.0.14393 ].
MongoDB v3.4
Debe hacer lo siguiente para crear una base de datos segura:
Asegúrese de que el usuario que inicia el proceso tenga permisos y que los directorios existan ( /data/db en este caso).
1) Inicie MongoDB sin control de acceso.
mongod --port 27017 --dbpath /data/db2) Conéctese a la instancia.
mongo --port 270173) Cree el administrador de usuarios (en la base de datos de autenticación de administrador) .
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )4) Reinicie la instancia de MongoDB con control de acceso.
mongod --auth --port 27017 --dbpath /data/db5) Conéctese y autentíquese como administrador de usuarios.
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"6) Cree usuarios adicionales según sea necesario para su implementación (por ejemplo, en la base de datos de autenticación de prueba) .
use test db.createUser( { user: "myTester", pwd: "xyz123", roles: [ { role: "readWrite", db: "test" }, { role: "read", db: "reporting" } ] } )7) Conéctese y autentíquese como myTester.
mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"Básicamente, acabo de explicar la versión corta de los documentos oficiales aquí: https://docs.mongodb.com/master/tutorial/enable-authentication/
¡Dios mío, qué planta de gas, esa respuesta superior!
Todo lo que necesitas hacer es:
C:\Program Files\MongoDB\Server\4.4\bin\mongodb.cfgsecurity: authorization: a enabled , como se ilustra; tenga en cuenta que esta subentrada puede faltar por completo. Solo agrégalo entonces.MongoDB Server desde el panel de control de Servicios de Windows.Obviamente, si, después de esto, configura una política basada en roles de lectura/escritura, eso tendrá mucho más sentido.
Ref: https://docs.mongodb.com/manual/tutorial/configure-scram-client-authentication/
Acabo de probar esto usando phpunit, funciona como se esperaba.
puede crear un usuario administrador u otro rol . ejecútelo en mongo shell.
db.createUser({user: "username", pwd: "password", roles: ["dbAdmin"]})si obtiene el error SCRAM-SHA-256, puede configurar el mecanismo SHA-1.
db.createUser({user: "username", pwd: "password", roles: ["dbAdmin"], mechanisms: ["SCRAM-SHA-1"]})