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

MongoDB에서 getUsers()와 show users 명령 비교 – 사용자 목록 조회 방법 총정리

MongoDB에서 사용자 목록을 확인하는 두 가지 방법

MongoDB 셸(Mongo Shell)에서 현재 데이터베이스에 등록된 모든 사용자를 조회하려면 getUsers() 메서드show users 명령 두 가지 방식을 사용할 수 있습니다. 두 방법은 본질적으로 동일한 목적, 즉 사용자 목록 조회를 수행하지만, 출력 형태와 활용 방식에서 약간의 차이가 있습니다.

이 글에서는 두 방법의 문법과 실제 실행 결과를 예제와 함께 자세히 살펴보겠습니다.

방법 1: getUsers() 메서드 사용

getUsers()는 데이터베이스 객체에 직접 호출하는 JavaScript 메서드입니다. 문법은 다음과 같습니다.

db.getUsers();

이 메서드를 실행하면 현재 데이터베이스의 모든 사용자 정보를 배열(Array) 형태로 반환합니다. 각 사용자 항목에는 고유 ID(_id), 사용자 이름(user), 소속 데이터베이스(db), 부여된 역할(roles), 인증 메커니즘(mechanisms) 등이 포함됩니다.

실제로 Mongo 셸에서 다음과 같이 입력해 보겠습니다.

> db.getUsers();

실행 결과는 아래와 같습니다.

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

위 결과에서 확인할 수 있듯이, 'John' 사용자에게는 test 데이터베이스에 대한 readWrite와 dbAdmin 역할이 부여되어 있고, 'admin' 사용자에게는 root 역할이 설정되어 있습니다. 또한 두 사용자 모두 SCRAM-SHA-1과 SCRAM-SHA-256 인증 메커니즘을 지원합니다.

방법 2: show users 명령 사용

show users는 Mongo 셸에서 제공하는 헬퍼(helper) 명령으로, 더 짧고 간편하게 사용자 목록을 확인할 수 있습니다. 문법은 다음과 같습니다.

show users;

실제 실행 예시는 다음과 같습니다.

> show users;

실행 결과는 아래와 같습니다.

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

두 방법의 차이점 정리

두 방법 모두 동일한 사용자 정보를 반환하며, 그 목적은 사실상 같습니다. 다만 몇 가지 실무적인 차이가 있습니다.

  • 출력 형식: getUsers()는 사용자 정보를 하나의 배열로 감싸서 반환하는 반면, show users는 각 사용자 객체를 개별적으로 나열합니다.
  • 활용성: getUsers()는 JavaScript 메서드이므로 스크립트나 프로그램 내에서 결과를 변수에 담아 후속 처리하기에 적합합니다.
  • 편의성: show users는 대화형 셸에서 빠르게 확인할 때 유용한 단축 명령입니다.

결론적으로, 일상적인 확인 작업에는 show users, 스크립트 자동화나 상세 조회에는 getUsers()를 사용하는 것이 효율적입니다. 참고로 이 명령들을 실행하려면 해당 데이터베이스에 대한 viewUser 권한이 필요하다는 점도 기억해 두세요.