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 ''

89

J'ai d'abord installé MongoDB 3.4.1 aujourd'hui. Mais quand je le démarre et que j'utilise le shell MongoDB, 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].

Alewu
la source
2
Double possible de MongoDB: le serveur a des avertissements de démarrage
Joseph Ferris
6
C'est presque une copie parfaite d'une autre question. Avez-vous déjà posé cette question l'année dernière sous un nom d'utilisateur différent? La seule chose qui est différente est le nom d'utilisateur et la version de Windows. Voir: stackoverflow.com/questions/36660117/…
Joseph Ferris
@JosephFerris, Oui, il s'agit d'une duplication pour stackoverflow.com/questions/36660117/... et cette question a été fermée à cause de cette duplication.
Lakmal Vithanage le

Réponses:

137

Mongodb v3.4

Vous devez effectuer les opérations suivantes pour créer une base de données sécurisée:

Assurez-vous que l'utilisateur qui démarre le processus dispose des autorisations et que les répertoires existent ( /data/dbdans 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'administrateur utilisateur (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'administrateur d'utilisateurs.

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

6) Créez des utilisateurs supplémentaires selon vos besoins pour votre déploiement (par exemple dans la base de données d'authentification de 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 myTester.

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

En gros, je viens d'expliquer la version courte de la documentation officielle ici: https://docs.mongodb.com/master/tutorial/enable-authentication/

Basickarl
la source
1
Je fais comme vous l'avez dit, mais un seul problème est que ceci --auth doit passer à chaque fois ou pour une fois. si à chaque fois, comment donner avec un service parce que dans un serveur, je veux aimer ce service sudo MongoDB démarrer?
suresh pareek
5
@sureshpareek Vous pouvez configurer cela dans le fichier mongodb.conf si vous ne voulez pas le passer à chaque fois, plus d'infos ici: docs.mongodb.com/manual/reference/configuration-options/…
basickarl
1
@sureshpareek Pas de problème mec! Cochez ici si vous voulez en savoir plus: stackoverflow.com/a/42929869/1137669 Je vous explique un peu plus en détail.
basickarl
J'échoue dans la première étape. J'étais la version v3.6.5. Le même avertissement et il s'est arrêté
wyx
7
Sérieusement les gars ... Pourquoi vous ne dites pas d'activer le security.authorizationdans mongod.conf??????
John
-5

Vous devez supprimer votre ancien dossier db et en recréer un nouveau. Cela résoudra votre problème.

Parag
la source