문서 메뉴

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

system.users 컬렉션

이 페이지의 내용

  • system.users 스키마
  • 예제

system.users 데이터베이스의 admin 컬렉션에는 사용자 인증권한 부여 정보가 저장되어 있습니다. 이 컬렉션의 데이터를 관리하기 위해 MongoDB는 사용자 관리 명령을 제공합니다.

system.users 컬렉션의 문서에는 다음과 같은 스키마가 있습니다.

{
_id: <system defined id>,
userId : <system assigned UUID>, // Starting in MongoDB 4.0.9
user: "<name>",
db: "<database>",
credentials: { <authentication credentials> },
roles: [
{ role: "<role name>", db: "<database>" },
...
],
customData: <custom information>,
authenticationRestrictions : [ <documents> ] // Starting in MongoDB 4.0
}

system.users 문서에 다음과 같은 필드가 있습니다.

admin.system.users.userId

생성 시 사용자에게 할당된 사용자의 고유 식별자입니다.

userIdcreated MongoDB 4 에서 사용할 수 있습니다.0.9 이상.

버전 4.0.9에 추가되었습니다.

admin.system.users.user

사용자 이름입니다. 사용자는 단일 논리적 데이터베이스의 컨텍스트에 존재하지만( admin.system.users.db 참조), roles 배열에 지정된 역할을 통해 다른 데이터베이스에 액세스할 수 있습니다.

admin.system.users.db

사용자와 연결된 인증 데이터베이스 입니다. 사용자의 권한이 반드시 이 데이터베이스로 제한되는 것은 아닙니다. 사용자는 roles 배열을 통해 추가 데이터베이스에 대한 권한을 가질 수 있습니다.

admin.system.users.credentials

사용자의 인증 정보입니다. Kerberos 또는 x를 사용하는 사용자와 같이 외부에 저장된 인증 자격 증명이 있는 사용자의 경우. 인증을 위한 509 인증서의 경우, 해당 사용자의 system.users 문서에 credentials 필드가 포함되어 있지 않습니다. SCRAM 사용자 자격 증명에는 메커니즘, 반복 횟수 및 인증 매개변수가 포함됩니다.

다음도 참조하세요.

admin.system.users.roles

사용자에게 부여된 역할의 배열입니다. 배열에는 기본 제공 역할사용자 정의 역할이 모두 포함됩니다.

역할 문서에는 다음과 같은 구문이 있습니다.

{ role: "<role name>", db: "<database>" }

역할 문서에는 다음과 같은 필드가 있습니다.

admin.system.users.roles[n].role

역할의 이름입니다. 역할은 MongoDB에서 제공하는 기본 제공 역할 또는 사용자 지정 사용자 정의 역할일 수 있습니다.

admin.system.users.roles[n].db

역할이 정의된 데이터베이스의 이름입니다.

역할 관리 또는 사용자 관리 명령을 사용하여 역할을 지정할 때는 명령이 실행되는 데이터베이스에 역할이 존재하는 경우 역할 이름만 지정할 수 있습니다(예: "readWrite").

admin.system.users.customData

사용자에 대한 선택적 사용자 지정 정보입니다.

admin.system.users.authenticationRestrictions

서버가 사용자에 대해 시행하는 인증 제한의 배열입니다. 배열에는 사용자가 서버에 연결할 수 있거나 서버가 사용자를 받아들일 수 있는 IP 주소 및 CIDR 범위 목록이 포함됩니다.

버전 4.0에 추가.

system.users 컬렉션에 있는 다음 문서를 가정해 보겠습니다.

{
"_id" : "home.Kari",
"userId" : UUID("ec1eced7-055a-4ca8-8737-60dd02c52793"), // Available starting in MongoDB 4.0.9
"user" : "Kari",
"db" : "home",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : "S/xM2yXFosynbCu4GzFDgQ==",
"storedKey" : "Ist4cgpEd1vTbnRnQLdobgmOsBA=",
"serverKey" : "e/0DyzS6GPboAA2YNBkGYm87+cg="
},
"SCRAM-SHA-256" : {
"iterationCount" : 15000,
"salt" : "p1G+fZadAeYAbECN8F/6TMzXGYWBaZ3DtWM0ig==",
"storedKey" : "LEgLOqZQmkGhd0owm/+6V7VdJUYJcXBhPUvi9z+GBfk=",
"serverKey" : "JKfnkVv9iXwxyc8JaapKVwLPy6SfnmB8gMb1Pr15T+s="
}
},
"authenticationRestrictions" : [ // Available starting in MongoDB 4.0
{ "clientSource" : [ "69.89.31.226" ], "serverAddress" : [ "172.16.254.1" ] }
],
"customData" : {
"zipCode" : "64157"
},
"roles" : [
{
"role" : "read",
"db" : "home"
},
{
"role" : "readWrite",
"db" : "test"
}
]
}

이 문서에 따르면 사용자 Kari의 인증 데이터베이스는 home 데이터베이스입니다. Karihome 데이터베이스에서 read 역할을, test 데이터베이스에서는 readWrite 역할을 가집니다.

← system.roles 컬렉션

이 페이지의 내용