자체 관리 배포서버의 사용자
MongoDB에서 클라이언트를 인증하려면 해당 사용자를 MongoDB에 추가해야 합니다.
사용자 관리
mongosh
를 사용하여 db.createUser()
메서드로 사용자를 추가할 수 있습니다. 이 때 첫 번째로 생성하는 사용자에게는 다른 사용자를 생성할 권한이 제공되어야 합니다. userAdmin
또는 userAdminAnyDatabase
역할은 모두 다른 사용자를 생성할 수 있는 권한을 부여합니다.
사용자를 생성할 때 사용자에게 역할 을 할당하여 사용자에게 권한을 부여할 수 있습니다. 기존 사용자를 업데이트하여 역할을 부여하거나 취소하고 비밀번호를 업데이트할 수도 있습니다. 사용자 관리 방법의 전체 목록은 사용자 관리를 참조하세요 .
사용자는 사용자 이름과 연결된 인증 데이터베이스를 통해 고유하게 식별됩니다. MongoDB는 MongoDB에서 생성 시 사용자를 고유한 userId
와 연결합니다.
LDAP 관리 사용자
LDAP 서버에서 생성된 LDAP 관리 사용자는 system.users 컬렉션에 연결된 문서가 없으므로 userId
필드도 연결되어 있지 않습니다.
인증 데이터베이스.
사용자를 추가하면 특정 데이터베이스에 사용자가 생성됩니다. 사용자를 생성한 데이터베이스는 해당 사용자에 대한 인증 데이터베이스입니다.
그러나 사용자의 권한은 인증 데이터베이스로 제한되지 않습니다. 따라서 사용자는 여러 데이터베이스에 대한 권한을 가질 수 있습니다. 역할에 대한 자세한 내용은 자체 관리 배포서버의 역할 기반 액세스 제어를 참조하세요.
사용자 이름과 인증 데이터베이스는 해당 사용자의 고유 식별자 역할을 합니다. MongoDB는 MongoDB에서 생성 시 사용자를 고유한 userId
와 연결합니다. 그러나 LDAP 서버에서 생성된 LDAP 관리 사용자는 system.users 컬렉션에 연결된 문서가 없으므로 userId
필드가 연결되어 있지 않습니다.
두 명의 사용자가 이름은 같지만 서로 다른 데이터베이스에 생성된 경우 두 사용자는 별개의 두 사용자가 됩니다. 단일 사용자가 여러 데이터베이스에 대한 사용 권한을 갖도록 하려면 해당하는 각 데이터베이스에 대한 역할을 가진 단일 사용자를 생성합니다.
중앙 집중식 사용자 데이터
MongoDB에서 만든 사용자의 경우, MongoDB는 name
, password
및 사용자의 authentication
database
을 포함한 모든 사용자 정보를 admin
데이터베이스의 system.users 컬렉션에 저장합니다.
이 컬렉션을 직접 수정하지 마세요. 사용자를 관리하려면 지정된 사용자 관리 명령을 사용합니다.
샤딩된 클러스터 사용자
샤딩된 클러스터의 사용자를 만들려면 mongos
인스턴스에 연결하여 사용자를 추가합니다. mongos
인스턴스에서 생성된 사용자로 인증하려면 mongos
인스턴스를 통해 인증해야 합니다.
샤딩된 클러스터에서 MongoDB는 사용자 구성 데이터를 구성 서버의 admin
데이터베이스에 저장합니다.
샤드 로컬 사용자
cleanupOrphaned
또는 compact
또는 rs.reconfig()
와 같은 일부 유지 관리 작업은 샤딩된 클러스터의 특정 샤드에 직접 연결해야 합니다. 이러한 작업을 수행하려면 샤드에 직접 연결하고 샤드 로컬 관리 사용자로 인증해야 합니다.
샤드 로컬 관리 사용자를 만들려면 샤드의 프라이머리에 직접 연결하여 사용자를 만듭니다. 샤드 로컬 사용자 관리자를 생성하는 방법에 대한 지침은 키파일 인증을 사용한 자체 관리형 샤드 클러스터 배포 튜토리얼을 참조하세요.
MongoDB는 샤드 자체의 admin
데이터베이스에 샤드 로컬 사용자를 저장합니다. 이러한 샤드 로컬 사용자는 mongos
를 통해 샤딩된 클러스터에 추가된 사용자와는 독립적입니다. 샤드 로컬 사용자는 샤드에 로컬이며 mongos
로 액세스할 수 없습니다.
샤드에 대한 직접 연결은 샤드별 유지보수 및 구성 또는 대상 분석 워크로드를 위해서만 사용해야 합니다. 일반적으로 클라이언트는 mongos
를 통해 샤딩된 클러스터에 연결해야 합니다.