개발 공부/mongo

[mongoDB] 사용자 별 권한 부여

solutionMan 2024. 2. 21. 13:11
반응형

데이터베이스 역할 

  • read: 데이터를 읽을 수 있는 권한을 부여합니다.
  • readWrite: 데이터를 읽고 쓸 수 있는 권한을 부여합니다.
  • dbAdmin: 데이터베이스 관리와 관련된 작업을 수행할 수 있는 권한을 부여합니다.
  • userAdmin: 데이터베이스 사용자를 관리할 수 있는 권한을 부여합니다.

관리 역할 

  • clusterAdmin: 클러스터 수준에서 관리 작업을 수행할 수 있는 권한을 부여합니다.
  • readAnyDatabase: 모든 데이터베이스에서 데이터를 읽을 수 있는 권한을 부여합니다. (관리용 데이터베이스 제외)
  • readWriteAnyDatabase: 모든 데이터베이스에서 데이터를 읽고 쓸 수 있는 권한을 부여합니다. (관리용 데이터베이스 제외)
  • userAdminAnyDatabase: 모든 데이터베이스의 사용자를 관리할 수 있는 권한을 부여합니다.
  • dbAdminAnyDatabase: 모든 데이터베이스에서 관리 작업을 수행할 수 있는 권한을 부여합니다.

사용자 생성 및 권한부여

db.createUser({
  user: "사용자명",
  pwd: "비밀번호",
  roles: [{ role: "역할", db: "데이터베이스명" }]
})

 

사용자 업데이트 및 권한부여 업데이트

db.updateUser("사용자명", {
  pwd: "새 비밀번호",
  roles: [{ role: "새 역할", db: "데이터베이스명" }]
})

 

사용자 목록 확인

db.getUsers()

 

사용자 역할 확인

db.getUser("사용자명")

 


실제 사용예시

db.createUser({
  user: "사용자명",
  pwd: "비밀번호",
  roles: [
    { role: "read", db: "데이터베이스명" },
    { role: "readWrite", db: "데이터베이스명" },
    { role: "dbAdmin", db: "데이터베이스명" },
    { role: "userAdmin", db: "데이터베이스명" },
    { role: "clusterAdmin", db: "데이터베이스명" },
    { role: "readAnyDatabase", db: "데이터베이스명" },
    { role: "readWriteAnyDatabase", db: "데이터베이스명" },
    { role: "userAdminAnyDatabase", db: "데이터베이스명" },
    { role: "dbAdminAnyDatabase", db: "데이터베이스명" }
    // 필요에 따라 추가 관리 역할을 여기에 포함시킬 수 있습니다.
  ]
})
반응형