2014-04-12 15 views
36

Próbuję skonfigurować uwierzytelnianie na MongoDB. Odkomentowałem auth=true w pliku konfiguracyjnym i zrestartowałem serwer. Pierwsze połączenie przez mongo zostało odrzucone. Drugi (zaraz po pierwszym) przeszła i mam to w dziennikach:"db.createUser nie jest funkcją" i "hasło nie może być puste"

Sat Apr 12 14:56:46 [initandlisten] connection accepted from 127.0.0.1:44001 #1 
Sat Apr 12 14:56:46 [conn1] note: no users configured in admin.system.users, allowing localhost access 

Będąc w konsoli, jestem w stanie wykonać polecenia, jednak gdy próbuję śledzić każdy z numberous samouczków (w tym oficjalnych), otrzymuję albo db.createUser is not a function podczas wykonywania db.createUser() lub password can't be empty podczas wykonywania db.addUser():

Mongo output

przedmiotem której jestem przechodzącej jest:

{ 
    user: "username", 
    pwd: "passphrase", 
    roles: [ 
     { 
      role: "userAdminAnyDatabase", 
      db: "admin" 
     } 
    ] 
} 

Odpowiedz

46

Jaką wersję mongodb używasz? db.createUser został wprowadzony w wersji 2.6

Przestarzałe od wersji 2.6: Używaj db.createUser() i db.updateUser() zamiast db.addUser(), aby dodać użytkowników do MongoDB.

W wersji 2.6 MongoDB wprowadził nowy model poświadczeń użytkownika i uprawnień, zgodnie z opisem we Wprowadzeniu zabezpieczeń. Aby użyć db.addUser() na MongoDB 2.4, zobacz db.addUser() w wersji 2.4 podręcznika MongoDB.

http://docs.mongodb.org/manual/reference/method/db.addUser/

+14

Jeśli używasz RoboMongo, nadal pojawia się błąd, nawet jeśli za pomocą 2.6.x. Zobacz: https://github.com/paralect/robomongo/issues/542 – jordanpg

1

Odnośnie mojego doświadczenia, ten problem występuje również, gdy masz starą wersję Mongo Shell.

Upewnij się, że posiadasz powłokę Mongo zgodnie z wersją serwera MongoDB.

$ Mongo

MongoDB wersja shell v3.4.10

łączenia się: MongoDB: //127.0.0.1: 27017

wersja serwera MongoDB: 3.4.10

Poniżej:


$ mongo 
MongoDB shell version v3.4.10 
connecting to: mongodb://127.0.0.1:27017 
MongoDB server version: 3.4.10 
Server has startup warnings: 
2018-01-16T11:43:00.195-0600 I STORAGE [initandlisten] 
2018-01-16T11:43:00.195-0600 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 
2018-01-16T11:43:00.195-0600 I STORAGE [initandlisten] **   See http://dochub.mongodb.org/core/prodnotes-filesystem 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] **   Read and write access to data and configuration is unrestricted. 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] **  We suggest setting it to 'never' 
2018-01-16T11:43:00.687-0600 I CONTROL [initandlisten] 
> 
> use admin 
switched to db admin 
> 
> db.createUser({user:"mongoloide", pwd:"mongoloide*2017", roles:["root"]}) 
Successfully added user: { "user" : "mongoloide", "roles" : [ "root" ] }