2015-01-05 5 views
12

Ich beginne mit MongoDB und möchte den Zugriff auf die dbs verwenden. Das erste, was ich tat, war zu erstellen und Benutzer admin und startet mongodb mit Auth-activate, das ist mein erstellter Benutzer:Fehler: Benutzer konnte nicht hinzugefügt werden: nicht autorisiert beim Test, um den Befehl auszuführen {createUser:

db.getUser("admin") 
{ 
     "_id" : "admin.admin", 
     "user" : "admin", 
     "db" : "admin", 
     "roles" : [ 
       { 
         "role" : "dbAdminAnyDatabase", 
         "db" : "admin" 
       }, 
       { 
         "role" : "clusterAdmin", 
         "db" : "admin" 
       } 
     ] } 
} 

Danach versuche ich mit den folgenden Befehlen Benutzer zu erstellen:

use newdb 
db.createUser(
    { 
    user: "newuser", 
    pwd: "12345678", 
    roles: [ { role: "readWrite", db: "newdb" } ] 
    } 
) 

aber ich habe diesen Fehler:

Error: couldn't add user: not authorized on newdb to execute command { createUser: "newuser", pwd: "xxx", roles: [ { role: "readWrite", db: "newdb" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0 } } at src/mongo/shell/db.js:1004

ich habe darüber gegoogelt, aber es gibt nur zwei Ergebnisse, eine auf Chinesisch und das andere nicht verwandt, so dass ich ein wenig verloren. Irgendeine Idee ? Es sieht aus wie mein Admin-Benutzer keine Berechtigung haben, ich Zugriff auf die mongodb mit dem folgenden Befehl:

$mongo --port 27017 -u adminUser -p adminPass --authenticationDatabase admin 

Vielen Dank im Voraus.

+1

Sie haben die Rolle 'userAdmin' /' userAdminAnyDatabase' nicht in den Benutzer admin aufgenommen. 'dbAdminAnyDatabase' und' clusterAdmin' enthalten keine Benutzerverwaltungsrechte. – wdberkeley

+0

Das war das Problem. Nun, das war meine erste Begegnung mit Mongodb :) Vielen Dank! – brb

Antwort

4

Unterhalb Befehl sagt, Sie haben Admin Benutzer und Passwort erstellt.

db.getUser("admin")  
{  
     "_id" : "admin.admin", 
     "user" : "admin",  
     "db" : "admin",  
     "roles" : [  
       {  
         "role" : "dbAdminAnyDatabase",  
         "db" : "admin"  
       },  
       {  
         "role" : "clusterAdmin",  
         "db" : "admin"  
       }  
     ] }  
}  

Sobald Sie den Admin-Benutzer und Passwort erstellen, wird Mongo nicht zulassen, dass Sie ein Schema Update als normal ein Admin-Benutzer tun, unter der Sie vorher anmelden.

Verwenden Sie den neu erstellten Benutzer admin und das Kennwort, um neue Benutzer zu erstellen oder Aktualisierungen vorzunehmen. Es sollte funktionieren.

0

Sie sollten den aktuellen mongod-Prozess beenden und ohne parameter --auth erneut starten.

Auf Klemmentyp: mongod

Nachdem der Prozess von mongod gestartet wird, dann können Sie neuen Terminal Tab öffnen Mongo Shell-Befehl auszuführen:

mongo --shell 
use new_your_database 
db.createUser(
    { 
    user: "mongo_admin", 
    pwd: "mongo_admin", 
    roles: [ "readWrite", "dbAdmin" ] 
    } 
) 

es erfolgreich getan werden soll ....

5

Stoppen Sie die laufende Instanz mongod mongod --config /usr/local/etc/mongod.conf --auth

dann ohnestartenwie mongod --config /usr/local/etc/mongod.conf

dann Ihre Rollen aktualisieren like

db.updateUser("admin",{roles : ["userAdminAnyDatabase","userAdmin","readWrite","dbAdmin","clusterAdmin","readWriteAnyDatabase","dbAdminAnyDatabase"]});

jetzt wieder von vorn anfangen mongod mit --auth und versuchen.


Die Idee ist, Sie müssen Benutzer unter "admin" Datenbank mit allen oben genannten ROLES erstellen.

Aber dieser Benutzer ist nicht Teil anderer Datenbanken.Also, wenn Sie den Benutzer admin erstellt,

dann melden Sie sich als dieser Benutzer admin,

SERVER: mongod --config /usr/local/etc/mongod.conf --auth

CLIENT: ./mongodb/bin/mongo localhost:27017/admin -u adminUser -p 123456

use APPLICATION_DB 

wieder einen neuen Benutzer erstellen (zB APP_USER) für diese APPLICATION_DB. Dieses Mal benötigen Sie für diesen Anwendungsbenutzer nur die Rolle "dbOwner".

db.createUser({user:"test", pwd:"test", roles:['dbOwner']}) 

Jetzt muss Ihre Anwendung diese APP_USER und APP_DB verwenden.

Verwandte Themen