AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

db.createRole() (mongosh 메서드)

db.createRole(role, writeConcern)

데이터베이스에 역할을 생성합니다. 권한을 명시적으로 나열하거나, 역할이 다른 역할의 권한을 상속받거나, 나열과 상속 둘 다 진행하여 역할에 대한 권한을 지정할 수 있습니다. 이 역할은 메서드를 실행하는 데이터베이스에 적용됩니다.

중요

Mongo쉬 방법

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

데이터베이스 명령에 대해서는 createRole 명령을 참조하십시오.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

The db.createRole() method accepts the following arguments:

Parameter
유형
설명

role

문서

역할의 이름과 역할 정의가 포함된 문서입니다.

writeConcern

문서

선택 사항입니다. 작업에 대한 쓰기 고려 수준입니다. 쓰기 고려 사양을 참조하세요.

role 문서의 형식은 다음과 같습니다.

{
role: "<name>",
privileges: [
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
authenticationRestrictions: [
{
clientSource: ["<IP>" | "<CIDR range>", ...],
serverAddress: ["<IP>" | "<CIDR range>", ...]
},
...
]
}

role 문서에 다음과 같은 필드가 있습니다:

필드
유형
설명

role

문자열

새 역할의 이름입니다.

privileges

배열

역할에 부여할 권한입니다. 권한은 리소스와 허용된 작업으로 구성됩니다. 권한의 구문은 privileges 배열을 참조하세요.

privileges 필드를 포함시켜야 합니다. 권한을 지정하지 않으려면 빈 배열을 사용하세요.

roles

배열

이 역할에게 권한을 상속해 주는 역할의 배열입니다.

roles 필드를 포함시켜야 합니다. 상속의 출처가 될 역할을 지정하지 않으려면 빈 배열을 사용하세요.

authenticationRestrictions

배열

선택 사항.

서버가 이 역할에 대해 시행하는 인증 제한입니다. 이 역할을 부여받은 사용자에게 연결이 허용되거나 연결할 수 있는 IP 주소 및 CIDR 범위의 목록을 지정합니다.

roles 필드에서 기본 제공 역할사용자 정의 역할을 모두 지정할 수 있습니다.

To specify a role that exists in the same database where db.createRole() runs, you can either specify the role with the name of the role:

"readWrite"

또는 다음과 같이 문서로 역할을 지정할 수도 있습니다.

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

다른 데이터베이스에 존재하는 역할을 지정하려면 문서를 사용하여 역할을 지정합니다.

authenticationRestrictions 문서에는 다음 필드 포함될 수 있습니다. authenticationRestrictions 문서에 인식할 수 없는 필드가 포함되어 있으면 서버에서 오류를 발생시킵니다.

필드 이름
설명

clientSource

IP 주소 및/또는 CIDR 범위의 배열

존재하는 경우, 사용자를 인증할 때 서버는 클라이언트의 IP 주소가 지정된 목록에 있거나 목록에 있는 CIDR 범위에 속하는지 확인합니다. 클라이언트의 IP 주소가 없는 경우 서버는 사용자를 인증하지 않습니다.

serverAddress

IP 주소 및/또는 CIDR 범위의 배열

클라이언트가 연결할 수 있는 IP 주소 또는 CIDR 범위의 목록입니다. 존재하는 경우, 서버는 주어진 목록의 IP 주소를 통해 클라이언트의 연결이 승인되었는지 확인합니다. 인식할 수 없는 IP 주소를 통해 연결이 수락된 경우 서버는 사용자를 인증하지 않습니다.

중요

사용자가 인증 제한이 호환되지 않는 여러 역할을 상속하는 경우 해당 사용자는 사용할 수 없게 됩니다.

예를 들어, 사용자가 clientSource 필드가 ["198.51.100.0"]인 역할과 clientSource 필드가 ["203.0.113.0"]인 다른 역할을 상속하는 경우 서버는 사용자를 인증할 수 없습니다.

MongoDB 의 인증 에 대한 자세한 내용 은 자체 관리형 배포서버에 대한 인증을 참조하세요.

이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

중요

이 명령은 MongoDB Atlas 클러스터에서 지원되지 않습니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하세요.

If run on a replica set, db.createRole() is executed using "majority" write concern by default.

admin 데이터베이스에서 만든 역할을 제외하고 역할은 해당 데이터베이스에 적용되는 권한만 포함할 수 있으며 해당 데이터베이스의 다른 역할로부터만 상속할 수 있습니다.

admin 데이터베이스에서 만든 역할에는 admin 데이터베이스, 다른 데이터베이스 또는 클러스터 리소스에 적용되는 권한이 포함될 수 있으며, admin 데이터베이스뿐만 아니라 다른 데이터베이스의 역할에서 상속될 수 있습니다.

The db.createRole() method returns a duplicate role error if the role already exists in the database.

privileges 배열 지정하면 데이터베이스의 여러 컬렉션 또는 전체 데이터베이스에 적용 권한 을 지정할 수 있습니다.

다음 구문은 products 데이터베이스 의 여러 컬렉션에 대한 권한을 지정합니다.

privileges: [
{
resource: { db: 'products', collection: 'coll1' },
actions: [ 'bypassDocumentValidation' ]
},
{
resource: { db: 'products', collection: 'coll2' },
actions: [ 'bypassDocumentValidation' ]
}
]

다음 구문은 products 데이터베이스 의 모든 컬렉션에 대한 권한을 지정합니다.

privileges: [
{
resource: { db: 'products', collection: '' },
actions: [ 'bypassDocumentValidation' ]
}
]

데이터베이스에서 역할을 생성하려면 다음 항목이 있어야 합니다.

기본 제공 역할인 userAdminuserAdminAnyDatabase은(는) 각자의 리소스에 대해 createRole 작업 및 grantRole 작업을 제공합니다.

authenticationRestrictions이(가) 지정된 역할을 생성하려면 이 역할이 생성되는 데이터베이스 리소스에 대한 setAuthenticationRestriction 작업이 있어야 합니다.

The following db.createRole() method creates the myClusterwideAdmin role on the admin database:

use admin
db.createRole(
{
role: "myClusterwideAdmin",
privileges: [
{ resource: { cluster: true }, actions: [ "addShard" ] },
{ resource: { db: "config", collection: "" }, actions: [ "find", "update", "insert", "remove" ] },
{ resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert", "remove" ] },
{ resource: { db: "", collection: "" }, actions: [ "find" ] }
],
roles: [
{ role: "read", db: "admin" }
]
},
{ w: "majority" , wtimeout: 5000 }
)
이 페이지 평가하기