Ich möchte die Authentifizierung von Benutzername und Kennwort für meine MongoDB-Instanz einrichten, damit bei jedem Remotezugriff nach Benutzername und Kennwort gefragt wird. Ich habe das Tutorial von der MongoDB-Site ausprobiert und Folgendes ausgeführt:
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
Danach stieg ich aus und rannte wieder Mongo. Und ich brauche kein Passwort, um darauf zuzugreifen. Selbst wenn ich eine Remoteverbindung zur Datenbank herstelle, werde ich nicht zur Eingabe von Benutzername und Kennwort aufgefordert.
UPDATE Hier ist die Lösung, die ich letztendlich verwendet habe
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
Der Benutzername und das Passwort funktionieren für mongodump
und auf die gleiche Weise mongoexport
.
authentication
mongodb
Murvinlai
quelle
quelle
Antworten:
Sie müssen
mongod
mit der--auth
Option beginnen, nachdem Sie den Benutzer eingerichtet haben.Von der MongoDB-Site:
MongoDB-Authentifizierung
quelle
admin
Datenbank herzustellen, eine andere Datenbank zu verwenden und es erneut zu versuchen. Nur ein userAdmin (AnyDatabase) kann eine Verbindung herstellenadmin
.Wow so viele komplizierte / verwirrende Antworten hier.
Dies ist ab Version 3.4 .
Kurze Antwort.
1) Starten Sie MongoDB ohne Zugriffskontrolle.
2) Stellen Sie eine Verbindung zur Instanz her.
3) Erstellen Sie den Benutzer.
4) Stoppen Sie die MongoDB-Instanz und starten Sie sie erneut mit der Zugriffskontrolle.
5) Verbinden Sie sich und authentifizieren Sie sich als Benutzer.
Lange Antwort: Lesen Sie dies, wenn Sie richtig verstehen wollen.
Es ist wirklich einfach. Ich werde das Folgende dumm machen https://docs.mongodb.com/manual/tutorial/enable-authentication/
Wenn Sie mehr darüber erfahren möchten, was die Rollen tatsächlich tun, lesen Sie hier mehr: https://docs.mongodb.com/manual/reference/built-in-roles/
1) Starten Sie MongoDB ohne Zugriffskontrolle.
2) Stellen Sie eine Verbindung zur Instanz her.
3) Erstellen Sie den Benutzeradministrator. Im Folgenden wird ein Benutzeradministrator in der
admin
Authentifizierungsdatenbank erstellt. Der Benutzer istdbOwner
über diesome_db
Datenbank und NICHT über dieadmin
Datenbank, dies ist wichtig zu beachten.Oder wenn Sie einen Administrator erstellen möchten, der über eine beliebige Datenbank verwaltet wird:
4) Stoppen Sie die MongoDB-Instanz und starten Sie sie erneut mit der Zugriffskontrolle.
5) Verbinden und authentifizieren Sie sich als Benutzeradministrator mit der
admin
Authentifizierungsdatenbank, NICHT mit dersome_db
Authentifizierungsdatenbank. Der Benutzeradministrator wurde in deradmin
Authentifizierungsdatenbank erstellt, der Benutzer ist in dersome_db
Authentifizierungsdatenbank nicht vorhanden .Sie werden jetzt als
dbOwner
Over-the-some_db
Database authentifiziert . Wenn Sie also direkt in Richtungsome_db
Datenbank lesen / schreiben / arbeiten möchten, können Sie zu dieser wechseln.Weitere Informationen zu Rollen: https://docs.mongodb.com/manual/reference/built-in-roles/
Wenn Sie zusätzliche Benutzer erstellen möchten, die keine Benutzeradministratoren sind und nur normale Benutzer sind, lesen Sie weiter unten.
6) Erstellen Sie einen normalen Benutzer. Dieser Benutzer wird in der
some_db
Authentifizierungsdatenbank unten erstellt.7) Verlassen Sie die Mongo-Shell, stellen Sie die Verbindung wieder her und authentifizieren Sie sich als Benutzer.
quelle
#auth=true
Deaktivieren Sie zunächst die Zeile, mit der in Ihrer Mongod-Konfigurationsdatei beginnt (Standardpfad/etc/mongo.conf
). Dies ermöglicht die Authentifizierung für Mongodb.Starten Sie dann mongodb neu:
sudo service mongod restart
quelle
/etc/mongod.conf
nicht/etc/mongo.conf
Diese Antwort dient als Mongo 3.2.1- Referenz
Terminal 1:
Terminal 2:
Wenn Sie ohne Rollen hinzufügen möchten (optional):
um zu überprüfen, ob authentifiziert oder nicht:
es sollte dir geben:
sonst:
quelle
use admin
vorher tippen,createUser
sonst gab es einen Fehler.Hier ist ein Javascript-Code zum Hinzufügen von Benutzern.
Beginnen Sie
mongod
mit--auth = true
Greifen Sie über die Mongo-Shell auf die Admin-Datenbank zu und übergeben Sie die Javascript-Datei.
mongo admin "Dateiname.js"
"Dateiname.js"
Nachdem das Hinzufügen des Benutzers abgeschlossen ist, können wir den Zugriff auf die Datenbank über die Mongo-Shell überprüfen
quelle
https://docs.mongodb.com/manual/reference/configuration-options/#security.authorization
Bearbeiten Sie die Mongo-Einstellungsdatei.
Fügen Sie die Zeile hinzu:
Starten Sie den Dienst neu
Grüße
quelle
Führen Sie zuerst mongoDB auf dem Terminal mit aus
Führen Sie nun die Mongo-Shell mit den folgenden Befehlen aus
Starten Sie die MongoDB-Instanz mit der Zugriffssteuerung neu.
Authentifizieren Sie sich jetzt über die Befehlszeile mit
Ich habe es gelesen
https://docs.mongodb.com/manual/tutorial/enable-authentication/
quelle
MongoDB Enterprise > db.system.users.find() { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SC RAM-SHA-1" : { "iterationCount" : 10000, "salt" : "k96PCEflidMY5seVju+gAw==", "s toredKey" : "CabQTnJtny7cv0wT5X8oX9QOn3A=", "serverKey" : "RJyCdnlIhyIfj2+d44L61 bYK+MU=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdmin", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "root", "db" : "admin" } ] }
Authentifizierung schlägt immer noch fehlroot
Rolle kombinierten Zugang zu den Operationen und alle Ressourcen der folgenden Rollen bietet ... Rolle rootDas habe ich unter Ubuntu 18.04 gemacht:
quelle
Du könntest dich ändern
/etc/mongod.conf
.Vor
#security:
Nach
Dann
sudo service mongod restart
quelle
Befolgen Sie die folgenden Schritte in der angegebenen Reihenfolge
mongod --auth
Vorgehensweise hängt von Ihrem Betriebssystem ab. Wenn Sie Windows verwenden, können Sie bei Linux einfach die/etc/mongod.conf
hinzuzufügende Datei bearbeitensecurity.authorization : enabled
Die Vorgehensweise hängt und dann den mongd-Dienst neu startenmongo -u "admin" -p "admin123" --authenticationDatabase "admin"
. Das ist esSie können diesen Beitrag lesen , um weitere Details zu erfahren und zu erfahren, wie Sie mit Mungo eine Verbindung herstellen können.
quelle
Benutzererstellung mit Kennwort für eine bestimmte Datenbank zum Sichern des Datenbankzugriffs:
quelle
Sie müssen zu der Datenbank wechseln, in der sich der Benutzer befinden soll (nicht zur Administrator-Datenbank) ...
use mydatabase
Weitere Hilfe finden Sie in diesem Beitrag ... https://web.archive.org/web/20140316031938/http://learnmongo.com/posts/quick-tip-mongodb-users/
quelle
Diese Schritte haben bei mir funktioniert:
quelle
Die beste Vorgehensweise, um eine Verbindung zu mongoDB herzustellen, ist wie folgt:
Nach der Erstinstallation
use admin
Führen Sie dann das folgende Skript aus, um einen Administrator zu erstellen
db.createUser( { user: "YourUserName", pwd: "YourPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "clusterAdmin", db: "admin" } ] })
Das folgende Skript erstellt den Administrator für die Datenbank.
Melden Sie sich mit db.admin an
mongo -u YourUserName -p YourPassword admin
Nach der Anmeldung können Sie eine N-Nummer der Datenbank mit demselben oder einem anderen Administrator-Berechtigungsnachweis erstellen, indem Sie die 1 bis 3 wiederholen.
Auf diese Weise können Sie unterschiedliche Benutzer und Kennwörter für die verschiedenen Sammlungen erstellen, die Sie in der MongoDB erstellen
quelle
Vergessen Sie nach dem Erstellen eines neuen Benutzers nicht
grant
read/write/root
, dem Benutzer die Erlaubnis zu erteilen. Sie können das versuchencmd: db.grantRolesToUser('yourNewUsername',[{ role: "root", db: "admin" }])
quelle