system.users
자체 관리형 배포의 컬렉션
이 페이지의 내용
admin
데이터베이스 의 system.users
컬렉션 은 사용자 인증 및 권한 부여 정보를 저장합니다. 이 컬렉션 의 데이터를 관리 하기 위해 MongoDB 는 사용자 관리 명령을 제공합니다.
system.users
스키마
system.users
컬렉션의 문서에는 다음과 같은 스키마가 있습니다.
{ _id: <system defined id>, userId : <system assigned UUID>, user: "<name>", db: "<database>", credentials: { <authentication credentials> }, roles: [ { role: "<role name>", db: "<database>" }, ... ], customData: <custom information>, authenticationRestrictions : [ <documents> ] }
각 system.users
문서에 다음과 같은 필드가 있습니다.
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에서 제공하는 기본 제공 역할 또는 사용자 지정 사용자 정의 역할일 수 있습니다.
역할 관리 또는 사용자 관리 명령을 사용하여 역할을 지정할 때는 명령이 실행되는 데이터베이스에 역할이 존재하는 경우 역할 이름만 지정할 수 있습니다(예:
"readWrite"
).
예시
system.users
컬렉션에 있는 다음 문서를 가정해 보겠습니다.
{ "_id" : "home.Kari", "userId" : UUID("ec1eced7-055a-4ca8-8737-60dd02c52793"), "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" : [ { "clientSource" : [ "69.89.31.226" ], "serverAddress" : [ "172.16.254.1" ] } ], "customData" : { "zipCode" : "64157" }, "roles" : [ { "role" : "read", "db" : "home" }, { "role" : "readWrite", "db" : "test" } ] }
이 문서에 따르면 사용자 Kari
의 인증 데이터베이스는 home
데이터베이스입니다. Kari
는 home
데이터베이스에서 read
역할을, test
데이터베이스에서는 readWrite
역할을 가집니다.