2014-04-12 11 views
36

Sto provando a configurare l'autenticazione su MongoDB. Ho decomposto auth=true nel file di configurazione e riavviato il server. La prima connessione via mongo è stata respinta. Il secondo (subito dopo il primo) ha attraversato e ho ottenuto questo nei ceppi:"db.createUser non è una funzione" e "la password non può essere vuota"

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 

Mentre in console, sono in grado di eseguire comandi, se cerco di seguire qualsiasi dei tutorial numberous (compresi quelli ufficiali), ottengo sia db.createUser is not a function durante l'esecuzione db.createUser() o password can't be empty durante l'esecuzione db.addUser():

Mongo output

L'oggetto che sto passando è:

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

risposta

46

Quale versione di mongodb stai eseguendo? db.createUser è stata introdotta nella versione 2,6

Sconsigliato a partire da versione 2.6: Usare db.createUser() e db.updateUser() al posto di db.addUser() per aggiungere gli utenti a MongoDB.

In 2.6, MongoDB ha introdotto un nuovo modello per credenziali utente e privilegi, come descritto in Introduzione alla sicurezza. Per utilizzare db.addUser() su MongoDB 2.4, vedere db.addUser() nella versione 2.4 del manuale di MongoDB.

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

+14

Se si utilizza RoboMongo, si continua a ottenere un errore, anche se si utilizza 2.6.x. Vedi: https://github.com/paralect/robomongo/issues/542 – jordanpg

1

Per quanto riguarda la mia esperienza, questo problema si verifica anche quando si dispone di una vecchia versione di Mongo Shell.

Quindi, assicurarsi di avere la Mongo Shell in base alla versione del server MongoDB.

$ mongo

MongoDB versione guscio v3.4.10

connessione a: MongoDB: //127.0.0.1: 27017

versione del server MongoDB: 3.4.10

Sotto:


$ 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" ] } 
Problemi correlati