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

하는 일

특정 데이터베이스 및 클러스터 action을 가진 사용자 정의 롤을 정의하고, 그 롤과 내장 롤로 사용자를 만들며, 롤을 부여하고 회수하고, 비밀번호를 변경하고, 모든 데이터베이스의 사용자를 나열한다.

사용 시점

최소 권한으로 애플리케이션 및 모니터링 계정을 만들 때, 접근 검토나 비밀번호 교체 중.

주의

사용자가 정의된 데이터베이스(여기서는 admin)가 authSource로 사용되며 애플리케이션의 연결 문자열과 일치해야 한다. 애플리케이션 계정에 root/dbOwner 같은 넓은 롤을 부여하지 않는다. 롤 변경은 기존 세션에 즉시 적용된다. 비밀번호 변경은 열린 연결을 끊지 않으며 새 연결에 적용된다.

DBAtlas에서 열기 →