문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

사용자 만들기

이 페이지의 내용

  • MongoDB Atlas 한계
  • 전제 조건
  • 절차
  • MongoDB Atlas에 대한 데이터베이스 사용자 구성
  • Add New Database User 대화 상자를 엽니다.
  • Password0}을 선택합니다.
  • 사용자 정보를 입력합니다.
  • 권한을 할당합니다.
  • 선택 사항입니다. 사용자가 액세스할 수 있는 프로젝트의 리소스를 지정합니다.
  • 선택 사항입니다. 임시 사용자로 저장합니다.
  • Add User를 클릭합니다.
  • 자체 호스팅 배포서버를 위한 사용자 구성
  • 연결 및 인증
  • 배포서버를 위한 추가 사용자 생성
  • 인스턴스에 연결하고 다음 계정으로 인증: myTester
  • (으)로 문서 삽입 myTester
  • 추가 예제
  • 사용자 이름/비밀번호 인증
  • Kerberos 인증
  • LDAP 인증
  • x.509 클라이언트 인증서 인증
  • 다음 단계

액세스 제어가 활성화되면 사용자는 자신을 식별해야 합니다. 사용자에게 하나 이상의 역할을 부여해야 합니다. 역할은 사용자에게 MongoDB resources에 대해 특정 조치를 수행할 수 있는 권한을 부여합니다.

MongoDB 시스템의 각 애플리케이션과 사용자는 고유한 사용자에게 매핑되어야 합니다. 이러한 액세스 격리 원칙은 액세스 해지 및 지속적인 사용자 유지 관리를 용이하게 합니다. 최소 권한의 시스템을 보장하려면 사용자에게 필요한 최소 권한 세트만 부여합니다.

이 페이지의 사용자 정보는 별도로 지정되지 않는 한 다음 환경 모두에서 호스팅되는 배포서버에 적용됩니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

다음 제한 사항은 MongoDB Atlas에서 호스팅되는 배포에만 적용됩니다. 이러한 제한 사항 중 하나라도 조직에 문제가 되는 경우 Atlas 지원팀에 문의하세요.

사용자 생성이 가능하려면 다음을 수행해야 합니다.

일상적인 사용자 생성을 위해서는 다음 권한이 있어야 합니다.

userAdminuserAdminAnyDatabase 기본 제공 역할은 해당 리소스에 대한 createUsergrantRole 조치를 제공합니다.

MongoDB Atlas에 대한 사용자를 생성하려면 MongoDB Atlas에 대한 조직 소유자 또는 프로젝트 소유자 액세스 권한이 있어야 합니다. 이러한 역할은 MongoDB Atlas에 고유하며 데이터베이스 사용자와는 별개입니다. 자세히 알아보려면 Atlas 사용자 역할을 참조하세요.

참고

다음 절차에서는 SCRAM 인증을 사용합니다. 다른 인증 메커니즘에 대한 자세한 내용은 추가 예시를 참조하세요.

MongoDB Atlas 프로젝트에서는 사용자마다 다양한 인증 방법을 사용할 수 있습니다.

사용자를 생성한 후에는 해당 사용자의 인증 방법을 변경할 수 없습니다. 대체 인증 방법을 사용하려면 새 사용자를 생성해야 합니다.

SCRAM 인증을 사용하는 MongoDB Atlas 배포서버의 데이터베이스 사용자를 구성합니다.

자체 호스팅된 MongoDB Enterprise 또는 MongoDB Community 배포서버에 대한 데이터베이스 사용자를 구성하려면 다음 단계를 따르세요.

1

mongosh 를 사용하여 프라이머리 mongod 에 연결하거나, 샤드 클러스터에서 mongos 에 연결하고 사용자 관리자 또는 필요한 권한을 가진 사용자로 인증합니다.

2

참고

다음 단계에서는 SCRAM 인증을 사용합니다. 다른 인증 메커니즘에 대한 자세한 내용은 추가 예시를 참조하세요.

사용자 관리자로 인증한 후 db.createUser() 메서드를 사용하여 추가 사용자를 생성합니다. 사용자에게 기본 제공 역할 또는 사용자 정의 역할을 할당할 수 있습니다.

다음 작업은 test 데이터베이스에서 readWrite 역할과 reporting 데이터베이스에서 read 역할을 가진 사용자 myTestertest 데이터베이스에 추가합니다.

use test
db.createUser(
{
user: "myTester",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)

passwordPrompt() 메서드는 암호를 입력하라는 메시지를 표시합니다. 암호를 문자열로 직접 지정할 수도 있습니다. 암호가 화면에 표시되어 셸 기록에 암호가 유출될 가능성을 방지하려면 passwordPrompt() 방법을 사용하는 것이 좋습니다.

사용자를 생성하는 데이터베이스(이 예시에서는 test)는 해당 사용자의 인증 데이터베이스입니다. 사용자는 이 데이터베이스에 대해 인증하더라도 다른 데이터베이스에서 역할을 가질 수 있습니다. 사용자의 인증 데이터베이스는 사용자의 권한을 제한하지 않습니다.

추가 사용자를 생성한 후 mongosh 을 종료합니다.

3

중요

동일한 mongosh 세션에 있는 사용자 간에는 전환할 수 없습니다. 다른 사용자로 인증하면 세션에 인증된 사용자 모두 의 권한이 부여됩니다. 사용자 간에 전환하려면 mongosh 을 종료하고 다시 시작합니다.

mongosh 을(를) myUserAdmin(으)로 종료한 후 myTester(으)로 다시 연결합니다.

4

사용자 myTestertest 데이터베이스에서 읽기 및 쓰기 작업을 수행할 수 있는 권한이 있습니다(reporting 데이터베이스에서 읽기 작업도 수행 가능). myTester으로 인증되면 test 데이터베이스의 컬렉션에 문서를 삽입합니다. 예를 들어 test 데이터베이스에서 다음과 같은 삽입 작업을 수행할 수 있습니다.

db.foo.insertOne( { x: 1, y: 1 } )

다음도 참조하세요.

다음 작업은 지정된 이름, 비밀번호 및 역할을 사용하여 reporting 데이터베이스에 사용자를 생성합니다.

passwordPrompt() 메서드는 암호를 입력하라는 메시지를 표시합니다. 암호를 문자열로 직접 지정할 수도 있습니다. 암호가 화면에 표시되어 셸 기록에 암호가 유출될 가능성을 방지하려면 passwordPrompt() 방법을 사용하는 것이 좋습니다.

use reporting
db.createUser(
{
user: "reportsUser",
pwd: passwordPrompt(), // or cleartext password
roles: [
{ role: "read", db: "reporting" },
{ role: "read", db: "products" },
{ role: "read", db: "sales" },
{ role: "readWrite", db: "accounts" }
]
}
)

Kerberos와 같은 외부 인증 메커니즘을 사용하여 MongoDB에 인증하는 사용자는 mongos 또는 mongod를 허용해 인증을 위한 외부 소스를 참조할 수 있는 $external 데이터베이스에 생성되어야 합니다.

$external 인증 사용자(Kerberos, LDAP 또는 x.509 사용자)와 함께 클라이언트 세션 및 인과적 일관성 보장 을 사용하려면 사용자 이름이 10k 바이트를 초과할 수 없습니다.

Kerberos 인증의 경우 Kerberos 주체를 사용자 이름으로 추가해야 합니다. 비밀번호를 지정할 필요는 없습니다.

다음 작업은 records 데이터베이스에 대한 읽기 전용 액세스 권한을 가진 Kerberos 주체 reportingapp@EXAMPLE.NET을 추가합니다.

use $external
db.createUser(
{
user: "reportingapp@EXAMPLE.NET",
roles: [
{ role: "read", db: "records" }
]
}
)

다음도 참조하세요.

MongoDB deployment에 대한 Kerberos 인증 설정에 관한 자세한 내용은 다음 튜토리얼에서 확인하세요.

LDAP와 같은 외부 인증 메커니즘을 사용하여 MongoDB에 인증하는 사용자는 mongos 또는 mongod를 허용해 인증을 위한 외부 소스를 참조할 수 있는 $external 데이터베이스에 생성되어야 합니다.

$external 인증 사용자(Kerberos, LDAP 또는 x.509 사용자)와 함께 클라이언트 세션 및 인과적 일관성 보장 을 사용하려면 사용자 이름이 10k 바이트를 초과할 수 없습니다.

LDAP 인증의 경우 사용자 이름을 지정해야 합니다. 비밀번호는 LDAP 서비스에서 처리하므로 지정할 필요가 없습니다.

다음 작업은 records 데이터베이스에 읽기 전용 액세스 권한이 있는 reporting 사용자를 추가합니다.

use $external
db.createUser(
{
user: "reporting",
roles: [
{ role: "read", db: "records" }
]
}
)

다음도 참조하세요.

MongoDB deployment에 대한 LDAP 인증 설정에 관한 자세한 내용은 다음 튜토리얼에서 확인하세요.

MongoDB Atlas의 LDAP 인증 설정에 대해 자세히 알아보려면 MongoDB Atlas 설명서에서 데이터베이스 사용자 추가 를 참조하세요.

x.509 클라이언트 인증서 인증과 같은 외부 인증 메커니즘을 사용하여 MongoDB에 인증하는 사용자는 mongos 또는 mongod를 허용해 인증을 위한 외부 소스를 참조할 수 있는 $external 데이터베이스에 생성되어야 합니다.

$external 인증 사용자(Kerberos, LDAP 또는 x.509 사용자)와 함께 클라이언트 세션 및 인과적 일관성 보장 을 사용하려면 사용자 이름이 10k 바이트를 초과할 수 없습니다.

x.509 클라이언트 인증서 인증의 경우 클라이언트 인증서의 subject 값을 MongoDB 사용자로 추가해야 합니다. 각각의 고유한 x.509 클라이언트 인증서는 단일 MongoDB 사용자와 매치됩니다. 비밀번호를 지정할 필요는 없습니다.

다음 작업은 records 데이터베이스에 대한 읽기 전용 액세스 권한이 있는 클라이언트 인증서 주체 CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry 사용자를 추가합니다.

use $external
db.createUser(
{
user: "CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry",
roles: [
{ role: "read", db: "records" }
]
}
)

다음도 참조하세요.

MongoDB deployment에 대한 x.509 클라이언트 인증서 인증 설정에 관한 자세한 내용은 다음 튜토리얼에서 확인하세요.

x 설정에 대해 자세히 알아보세요.509 MongoDB Atlas에 대한 클라이언트 인증서 인증은 MongoDB Atlas 설명서에서 데이터베이스 사용자 추가 를 참조하세요.

사용자를 관리하고, 역할을 할당하고, 자체 호스팅된 MongoDB Enterprise 또는 MongoDB Community 배포에 대한 사용자 지정 역할을 만들려면 사용자 및 역할 관리를 참조하세요.

사용자를 관리하고, 역할을 할당하고, MongoDB Atlas 배포서버를 위한 사용자 지정 역할을 만들 수도 있습니다.

← 사용자