web-dev-qa-db-fra.com

MongoDB: le serveur a des avertissements de démarrage '' Le contrôle d'accès n'est pas activé pour la base de données ''

J'ai d'abord installé MongoDB 3.4.1 aujourd'hui. Mais quand je l'ai démarré et que j'utilise MongoDB Shell, il m'a donné ces avertissements ci-dessous:

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]

mon ordinateur est Microsoft Windows [version 10.0.14393].

70
alewu

Mongodb v3.4

Vous devez procéder comme suit pour créer une base de données sécurisée:

Assurez-vous que l'utilisateur qui lance le processus dispose des autorisations et que les répertoires existent (/data/db dans ce cas).

1) Démarrez MongoDB sans contrôle d’accès.

mongod --port 27017 --dbpath /data/db

2) Connectez-vous à l'instance.

mongo --port 27017

3) Créez l'utilisateur administrateur (dans la base de données d'authentification admin) .

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

4) Redémarrez l’instance MongoDB avec le contrôle d’accès.

mongod --auth --port 27017 --dbpath /data/db

5) Connectez-vous et authentifiez-vous en tant qu'utilisateur administrateur.

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

6) Créez des utilisateurs supplémentaires en fonction des besoins de votre déploiement (par exemple, dans la base de données d’authentification test) .

use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

7) Connectez-vous et authentifiez-vous en tant que testeur.

mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"

En gros, je viens d’expliquer la version abrégée de la documentation officielle ici: https://docs.mongodb.com/master/tutorial/enable-authentication/

106
Karl Morrison