grantPrivilegesToRole
정의
grantPrivilegesToRole
명령이 실행 되는 데이터베이스 에 정의 된 사용자 정의 역할 에 추가 권한을 할당합니다.
팁
mongosh
에서는 이 명령을db.grantPrivilegesToRole()
헬퍼 메서드를 통해서도 실행할 수 있습니다.헬퍼 메서드는
mongosh
사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.grantPrivilegesToRole
명령은 다음 구문을 사용합니다.
db.runCommand( { grantPrivilegesToRole: "<role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], writeConcern: { <write concern> }, comment: <any> } )
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0, M2 및 M5 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
명령 필드
명령에는 다음과 같은 필드가 있습니다.
필드 | 유형 | 설명 |
---|---|---|
| 문자열 | 권한을 부여할 사용자 정의 역할의 이름입니다. |
| 배열 | 역할에 추가할 권한입니다. 권한 형식은 |
| 문서 | |
| any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
행동
역할의 권한은 역할이 생성된 데이터베이스에 적용됩니다. admin
데이터베이스에서 생성된 역할에는 모든 데이터베이스 또는 클러스터에 적용되는 권한이 포함될 수 있습니다.
필요한 액세스 권한
권한을 부여하려면 권한이 대상으로 하는 데이터베이스에 grantRole
작업이 있어야 합니다. 여러 데이터베이스 또는 cluster
리소스에 대한 권한을 부여하려면 admin
데이터베이스에 대한 grantRole
작업이 있어야 합니다.
예시
다음 grantPrivilegesToRole
명령은 products
데이터베이스에 있는 service
역할에 두 가지 추가 권한을 부여합니다.
use products db.runCommand( { grantPrivilegesToRole: "service", privileges: [ { resource: { db: "products", collection: "" }, actions: [ "find" ] }, { resource: { db: "products", collection: "system.js" }, actions: [ "find" ] } ], writeConcern: { w: "majority" , wtimeout: 5000 } } )
privileges
배열 의 첫 번째 권한 을 통해 사용자는 products
데이터베이스 의 모든 비시스템 컬렉션을 검색 할 수 있습니다. 이 권한 은 컬렉션 과 같은 system.js
시스템 컬렉션 에 대한 쿼리를 허용하지 않습니다. 이러한 시스템 컬렉션에 액세스 을 부여하려면 privileges
배열 에 액세스 을 명시적으로 프로비저닝합니다. 자체 관리 배포서버에 대한 리소스 문서를 참조하세요.
두 번째 find
system.js
권한은 모든 데이터베이스의 collection에 대한 조치를 명시적으로 허용합니다.