2017-07-22 2 views
1

einfügen kann ich einen Benutzer in Mongo für diese Datenbank mit Lesezugriff nur erstellt habe, aber wenn ich in robomongo anmelden kann ich einfügen und sogar neue Kollektionen in test2 Datenbank erstellenBenutzer in Mongo mit Lese Rolle erstellt

Ist irgendwas falsch?

use test2 
db.createUser(
    { 
    user: "user", 
    pwd: "123", 
    roles: [ "read"] 
    } 
) 

Antwort

2

Meine Vermutung ist, dass Sie nicht die Authentifizierung auf Ihrem mongod noch aktiviert haben. Sie müssen die Authentifizierung aktivieren, bevor Ihre Benutzer basierend auf ihren Benutzerberechtigungen eingeschränkt werden. Von der documentation (Hervorhebung von mir):

Aktivieren der Zugriffssteuerung in einer MongoDB-Bereitstellung erzwingt Authentifizierung, Benutzer müssen sich identifizieren. Beim Zugriff auf eine MongoDB-Bereitstellung, für die die Zugriffssteuerung aktiviert ist, können Benutzer nur Aktionen ausführen, die durch ihre Rollen festgelegt sind.

Also, wenn Sie eine --auth Flagge zu Ihrem mongod hinzufügen und starten Sie das auf, wenn Sie über RoboMongo oder der Schale verbinden in oder wo auch immer, wird Ihre Benutzer haben nur Zugriff auf test2 (und das andere System gelesen Datenbanken, die read gewährt Zugriff auf). Beachten Sie, dass Sie wahrscheinlich einen Admin-Benutzer erstellen möchten, wie in dieser Dokumentation angegeben, bevor Sie mit dem Flag --auth arbeiten, vorausgesetzt, dass Sie dieses Flag für den Rest der Zeit, in der Sie Ihre mongod ausführen, aktiv bleiben möchten.

+0

Vielen Dank für die Beantwortung meiner Frage und das Speichern meiner Zeit nach dem Lesen und Testen von vielen Möglichkeiten zum Erstellen mehrere Rollen und Benutzer und Versuch und Irrtum Methoden in 3 Tagen. Cheers –

+0

Held! Ich habe vergessen, dass ich nicht bei allen Mitgliedern meines Replikats aktiviert hatte –

Verwandte Themen