정의
revokePrivilegesFromRole명령이 실행되는 데이터베이스의 사용자 정의 역할에서 지정된 권한을 제거합니다.
팁
mongosh에서 이 명령을db.revokePrivilegesFromRole()헬퍼 메서드를 통해서도 실행할 수 있습니다.헬퍼 메서드는
mongosh사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0 및 Flex 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { revokePrivilegesFromRole: "<role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], writeConcern: <write concern document>, comment: <any> })명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 설명 |
|---|---|---|
| 문자열 | 권한을 취소할 사용자 정의 역할입니다. |
| 배열 | 역할에서 제거할 권한의 배열입니다. 권한 형식에 대한 자세한 내용은 |
| 문서 | |
| any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
행동
권한을 취소하려면 리소스 문서 패턴이 해당 권한의 resource 필드와 정확히 일치해야 합니다. actions 필드는 하위 집합이거나 정확히 일치할 수 있습니다.
예를 들어, products 데이터베이스를 리소스로 지정하는 다음 권한을 가진 products 데이터베이스에서 accountRole 역할이 있다고 가정합니다.
{ "resource" : { "db" : "products", "collection" : "" }, "actions" : [ "find", "update" ]}products 데이터베이스의 하나 의 컬렉션에서만 find 및/또는 update 을(를) 해지할 수 없습니다 . 다음 작업을 수행해도 역할이 변경되지 않습니다.
use productsdb.runCommand( { revokePrivilegesFromRole: "accountRole", privileges: [ { resource : { db : "products", collection : "gadgets" }, actions : [ "find", "update" ] } ] })
db.runCommand( { revokePrivilegesFromRole: "accountRole", privileges: [ { resource : { db : "products", collection : "gadgets" }, actions : [ "find" ] } ] })accountRole 역할에서 "find" 및/또는 "update" 작업을 취소하려면 리소스 문서와 정확히 일치해야 합니다. 예를 들어, 다음 작업은 기존 권한에서 "find" 작업만 취소합니다.
use productsdb.runCommand( { revokePrivilegesFromRole: "accountRole", privileges: [ { resource : { db : "products", collection : "" }, actions : [ "find" ] } ] })필요한 액세스 권한
해당 권한을 취소하려면 권한 대상 데이터베이스에 대한 revokeRole 작업 이 있어야 합니다. 권한이 여러 데이터베이스 또는 cluster 리소스를 대상으로 하는 경우 admin 데이터베이스에 대한 revokeRole 작업이 있어야 합니다.
예시
다음 작업은 products 데이터베이스의 associates 역할에서 여러 권한을 제거합니다.
use productsdb.runCommand( { revokePrivilegesFromRole: "associate", privileges: [ { resource: { db: "products", collection: "" }, actions: [ "createCollection", "createIndex", "find" ] }, { resource: { db: "products", collection: "orders" }, actions: [ "insert" ] } ], writeConcern: { w: "majority" } })