Passwort für MongoDB einrichten

Zum Absichern der Datenbank kann ein Passwort vergeben werden, mit folgender Anleitung:

Administrator Account erstellen
Dafür in die mongos Shell und Admin Datenbank wechseln


mongosh
use admin

Admin User anlegen


db.createUser(
{
user: "mongoAdminUser",
pwd: "<passwort>",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

Fügen Sie anschließend die benötigte Rolle hinzu, um den ReplicaSet-Status einsehen zu können: 

db.grantRolesToUser(
  "mongoAdminUser",
  [
    { role: "clusterMonitor", db: "admin" }
  ]
)

Die Mongo Konfiguration anpassen

Öffnen Sie die Konfigurationsdatei:


nano etc/mongod.conf

Aktivieren Sie die Authentifizierung, indem Sie folgenden Abschnitt ergänzen oder anpassen:


security:
authorization: "enabled"

Service neu starten:


sudo service mongodb restart

Erneut in die Mongo Shell wechseln


mongosh 'mongodb://mongoAdminUser:<passwort>@<ip>:27017/admin?authSource=admin&replicaSet=rs0'

Nutzer für die Enginsight Datenbank anlegen
Wechseln Sie zunächst in die Enginsight-Datenbank

use enginsight

Erstellen Sie anschließend den Benutzer

 db.createUser(
{
user: "mongoDefaultUser",
pwd: "<passwort>",
roles: [ { role: "readWrite", db: "enginsight" } ]
}
)

Beim Ausführen der ./setup.sh auf dem AppServer muss nun für die Mongo Connection folgender String genutzt werden


mongodb://User:Passwort@<ip>:27017/enginsight?authSource=enginsight&replicaSet=rs0