DBAtlas · Атлас эксплуатации баз данных

Определение пользовательской роли, создание пользователя, выдача/отзыв ролей и смена пароля

MongoDBБезопасность

Команда

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 } })

Что делает

Определяет пользовательскую роль с конкретными действиями на уровне базы и кластера, создаёт пользователя с этой ролью и встроенными ролями, выдаёт и отзывает роли, меняет пароль и выводит пользователей во всех базах.

Когда использовать

При создании учётных записей приложений и мониторинга по принципу минимальных привилегий, при ревизии доступа или ротации паролей.

Внимание

База, в которой определён пользователь (здесь admin), используется как authSource; она должна совпадать со строкой подключения приложения. Не выдавайте учётным записям приложений широкие роли, такие как root/dbOwner. Изменения ролей сразу применяются к существующим сессиям; смена пароля не разрывает открытые соединения и действует для новых.

Открыть в DBAtlas →