2017-03-31 1 views
1

Ich habe einen Admin-Benutzer in der DB myNewDBMongoDB warum db.auth den Benutzer nicht wechselt?

[admin] user: root>use myNewDB 
switched to db myNewDB 
[myNewDB] user: root>show users 
{ 
"_id" : "myNewDB.superAdmin", 
"user" : "superAdmin", 
"db" : "myNewDB", 
"roles" : [ 
    { 
     "role" : "userAdmin", 
     "db" : "myNewDB" 
    }, 
    { 
     "role" : "readWrite", 
     "db" : "myNewDB" 
    }, 
    { 
     "role" : "dbAdmin", 
     "db" : "myNewDB" 
    } 
    ] 
} 

wenn ich versuche, als Superadmin zu authentifizieren: es scheint

[myNewDB] user: root>db.auth("superAdmin","superAdmin123") 
1 
[myNewDB] user: root> 

zu arbeiten, aber ich bin immer noch als Benutzer ‚root‘ verbunden ist, sollte

[myNewDB] user: superAdmin> 

UPDATE

h: ich nicht als authentifiziert werden ere ist mein monger.js

prompt = function() { 
    database = db.getName() 
    user = db.runCommand({connectionStatus : 
    1}).authInfo.authenticatedUsers[0] 
    if (user) { 
     return "["+ database +"] " + "user: " + user.user + ">" 
    } 
    return "["+ database +"] " + ">" 
} 

Antwort

2

Ich gehe davon aus, dass Sie die Mongo Shell verwenden, und Sie verwenden vermutlich eine .mongorc.js Datei, die ist, wie Sie mit einer Anzeige des aktuellen Benutzers und Datenbank die angepasste Eingabeaufforderung, wenn es darum .

Ich würde vorschlagen, dass Sie Ihre .mongorc.js Datei ansehen und/oder teilen Sie es hier. Die Eingabeaufforderung sollte sich bei der Authentifizierung ändern. Ein Beispiel finden Sie in this thread Datei .mongorc.js Datei.

BEARBEITEN: Wenn Sie weiter suchen, vermute ich, dass Sie in den Fall, in dem Sie gegen mehrere Datenbanken authentifiziert werden können. Und Ihre .mongorc.js ist wahrscheinlich naiv nur den ersten Benutzer zu greifen. Versuchen Sie, Ihr Beispiel erneut auszuführen, und führen Sie db.runCommand({connectionStatus : 1}) aus, das mehrere Benutzer anzeigen würde.

+0

Vielen Dank Helm ... MongoDB-Dokument ist nicht so einfach zu verstehen, wenn es entdeckt wird ... db.runCommand ({connectionStatus: 1}). zeigt die 2 authentifizierten Benutzer gegen 2 Datenbanken an ... Danke für die Tipps und Links ... – erwin

Verwandte Themen