문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

db.grantPrivilegesToRole()

이 페이지의 내용

  • 정의
  • 행동
  • 필요한 액세스 권한
  • 예제
db.grantPrivilegesToRole(rolename, privileges, writeConcern)

사용자 정의 역할에 추가권한 을 부여합니다.

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 데이터베이스 명령 또는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.

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

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

레거시 mongo 셸 문서는 해당 MongoDB 서버 릴리스 문서를 참조하세요.

Mongo 셸 V4.4

db.grantPrivilegesToRole() 메서드는 다음 구문을 사용합니다.

db.grantPrivilegesToRole(
"< rolename >",
[
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
{ < writeConcern > }
)

db.grantPrivilegesToRole() 메서드는 다음 인수를 사용합니다.

매개 변수
유형
설명
rolename
문자열
권한을 부여할 역할의 이름입니다.
privileges
배열
역할에 추가할 권한입니다. 권한 형식은 privileges를 참조하세요.
writeConcern
문서

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

db.grantPrivilegesToRole() 메서드는 하나 이상의 권한을 부여할 수 있습니다. 각 <privilege> 구문은 다음과 같습니다.

{ resource: { <resource> }, actions: [ "<action>", ... ] }

복제본 세트에서 실행할 경우, db.grantPrivilegesToRole()는 기본값으로 "majority" 쓰기 고려(write concern)를 사용하여 실행됩니다.

admin 데이터베이스에서 생성된 역할을 제외하고, 역할은 해당 데이터베이스에 적용되는 권한만 포함할 수 있습니다

admin 데이터베이스에서 생성된 역할에는 admin 데이터베이스, 다른 데이터베이스 또는 클러스터 리소스에 적용되는 권한이 포함될 수 있습니다.

권한을 부여하려면 권한이 대상으로 하는 데이터베이스에 grantRole 작업이 있어야 합니다. 여러 데이터베이스 또는 cluster 리소스에 대한 권한을 부여하려면 admin 데이터베이스에 대한 grantRole 작업이 있어야 합니다.

다음 db.grantPrivilegesToRole() 작업은 products 데이터베이스에 있는 inventoryCntrl01 역할에 권한을 두 개 더 부여합니다. 작업은 해당 데이터베이스에서 실행됩니다.

use products
db.grantPrivilegesToRole(
"inventoryCntrl01",
[
{
resource: { db: "products", collection: "" },
actions: [ "insert" ]
},
{
resource: { db: "products", collection: "system.js" },
actions: [ "find" ]
}
],
{ w: "majority" }
)

첫 번째 권한은 이 역할이 있는 사용자가 products 시스템 컬렉션을 제외한 데이터베이스의 모든 컬렉션에 대해 insert 작업을 수행할 수 있도록 허용합니다. 시스템 컬렉션에 접근하려면 두 번째 권한과 마찬가지로 권한이 리소스 문서의 시스템 컬렉션을 명시적으로 지정해야 합니다.

두 번째 권한은 이 역할이 있는 사용자가 system.js라는 product 데이터베이스의 시스템 컬렉션에 대해 find 작업을 수행할 수 있도록 허용합니다.

← db.getRoles()