DBAtlas · Atlas für Datenbankbetrieb

Eigene Rolle definieren, Benutzer anlegen, Rollen gewähren/entziehen und Passwort ändern

MongoDBSicherheit

Befehl

use admin
db.createRole({
  role: "opsRead",
  privileges: [
    { resource: { db: "shop", collection: "" }, actions: ["find", "listCollections", "listIndexes", "collStats", "dbStats"] },
    { resource: { cluster: true }, actions: ["serverStatus", "inprog"] }
  ],
  roles: []
})
db.createUser({ user: "shop_app", pwd: passwordPrompt(), roles: [{ role: "readWrite", db: "shop" }, { role: "opsRead", db: "admin" }] })
db.grantRolesToUser("shop_app", [{ role: "clusterMonitor", db: "admin" }])
db.revokeRolesFromUser("shop_app", [{ role: "clusterMonitor", db: "admin" }])
db.changeUserPassword("shop_app", passwordPrompt())
db.getUser("shop_app", { showPrivileges: true })
db.runCommand({ usersInfo: { forAllDBs: true } })

Was es tut

Definiert eine eigene Rolle mit bestimmten Datenbank- und Cluster-Actions, legt einen Benutzer mit dieser Rolle und eingebauten Rollen an, gewährt und entzieht Rollen, ändert das Passwort und listet Benutzer über alle Datenbanken.

Wann einsetzen

Beim Anlegen von Anwendungs- und Monitoring-Konten nach Least Privilege, bei Zugriffsüberprüfungen oder Passwortrotation.

Vorsicht

Die Datenbank, in der der Benutzer definiert ist (hier admin), wird als authSource verwendet; sie muss zum Connection String der Anwendung passen. Gewähre Anwendungskonten keine weitreichenden Rollen wie root/dbOwner. Rollenänderungen wirken sofort auf bestehende Sessions; eine Passwortänderung trennt offene Verbindungen nicht und gilt für neue.

In DBAtlas öffnen →