Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 올바른 역할(Role)로 기존 데이터베이스에 사용자를 생성하는 방법

MongoDB에서 역할을 지정하여 사용자 생성하기

MongoDB에서 새로운 사용자를 생성하려면 createUser() 메서드를 사용합니다. 이 메서드는 사용자 이름, 비밀번호, 그리고 해당 사용자에게 부여할 역할(roles)을 지정할 수 있어, 기존 데이터베이스에 필요한 권한만 가진 사용자를 안전하게 추가할 수 있습니다.

사용자 생성 쿼리

다음은 test 데이터베이스에 대해 읽기·쓰기(readWrite) 권한을 가진 사용자 'John'을 생성하는 예제입니다.

> db.createUser(
...     {
...        user: "John",
...        pwd: "123456",
...        roles: [ { role: "readWrite", db: "test" } ],
...        mechanisms: [ "SCRAM-SHA-256" ]
...     }
... )

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

Successfully added user: {
    "user" : "John",
    "roles" : [
       {
          "role" : "readWrite",
          "db" : "test"
       }
    ],
    "mechanisms" : [
       "SCRAM-SHA-256"
    ]
}

주요 옵션 설명

user: 생성할 사용자의 이름입니다.
pwd: 사용자의 비밀번호입니다. 실제 운영 환경에서는 복잡도 높은 비밀번호를 사용하는 것이 좋습니다.
roles: 사용자에게 부여할 권한 배열입니다. 위 예제에서는 test 데이터베이스에 대한 readWrite(읽기 및 쓰기) 권한을 부여했습니다. 그 외에도 read(읽기 전용), dbAdmin(데이터베이스 관리), userAdmin(사용자 관리) 등 다양한 내장 역할을 활용할 수 있습니다.
mechanisms: 인증에 사용할 메커니즘을 지정합니다. 여기서는 보안성이 강화된 SCRAM-SHA-256 방식을 사용했습니다.

생성된 사용자 확인하기

등록된 모든 사용자 목록을 조회하려면 getUsers() 메서드를 사용합니다.

> db.getUsers();

실행 결과는 다음과 같습니다.

[
    {
       "_id" : "test.John",
       "user" : "John",
       "db" : "test",
       "roles" : [
          {
             "role" : "readWrite",
             "db" : "test"
          }
       ],
       "mechanisms" : [
          "SCRAM-SHA-256"
       ]
    }
]

결과에서 확인할 수 있듯이, 사용자 'John'은 test 데이터베이스에 속해 있으며 readWrite 역할과 SCRAM-SHA-256 인증 메커니즘이 정상적으로 적용되었습니다. 이처럼 createUser()와 적절한 역할 조합을 활용하면 데이터베이스별로 최소 권한 원칙(Principle of Least Privilege)에 따라 사용자를 체계적으로 관리할 수 있습니다.