정의
db.revokePrivilegesFromRole(rolename, privileges, writeConcern)메서드가 실행되는 데이터베이스의 사용자 정의 역할에서 지정된 권한을 제거합니다.
중요
Mongo쉬 방법
이 페이지에서는
mongosh메서드를 설명합니다. 이는 데이터베이스 명령이나 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.데이터베이스 명령에 대해서는
revokePrivilegesFromRole명령을 참조하십시오.MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.
메서드의 구문은 다음과
db.revokePrivilegesFromRole()같습니다.db.revokePrivilegesFromRole( "<rolename>", [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], { <writeConcern> } ) 메서드는 다음 인수를
db.revokePrivilegesFromRole()사용합니다.Parameter유형설명rolename문자열
권한을 취소할 사용자 정의 역할 의 이름입니다.
privileges배열
역할에서 제거할 권한의 배열입니다. 권한 형식에 대한 자세한 내용은
privileges를 참조하세요.writeConcern문서
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
중요
이 명령은 MongoDB Atlas 클러스터에서 지원되지 않습니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
행동
복제본 세트
복제본 세트db.revokePrivilegesFromRole() 에서 실행 경우 는 기본값 으로 쓰기 "majority" 고려 (write concern) 사용하여 실행됩니다.
범위
권한을 취소하려면 리소스 문서 패턴이 해당 권한의 resource 필드와 정확히 일치해야 합니다. actions 필드는 하위 집합이거나 정확히 일치할 수 있습니다.
예를 들어 products 데이터베이스를 리소스로 지정하는 다음 권한이 있는 products 데이터베이스에 accountRole 역할이 주어집니다.
{ "resource" : { "db" : "products", "collection" : "" }, "actions" : [ "find", "update" ] }
products 데이터베이스의 하나 의 컬렉션에서만 find 및/또는 update 을(를) 해지할 수 없습니다 . 다음 작업을 수행해도 역할이 변경되지 않습니다.
use products db.revokePrivilegesFromRole( "accountRole", [ { resource : { db : "products", collection : "gadgets" }, actions : [ "find", "update" ] } ] ) db.revokePrivilegesFromRole( "accountRole", [ { resource : { db : "products", collection : "gadgets" }, actions : [ "find" ] } ] )
accountRole 역할에서 "find" 및/또는 "update" 작업을 취소하려면 리소스 문서와 정확히 일치해야 합니다. 예를 들어, 다음 작업은 기존 권한에서 "find" 작업만 취소합니다.
use products db.revokePrivilegesFromRole( "accountRole", [ { resource : { db : "products", collection : "" }, actions : [ "find" ] } ] )
권한
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' ] } ]
필요한 액세스 권한
해당 권한을 취소하려면 권한 대상 데이터베이스에 대한 revokeRole 작업 이 있어야 합니다. 권한이 여러 데이터베이스 또는 cluster 리소스를 대상으로 하는 경우 admin 데이터베이스에 대한 revokeRole 작업이 있어야 합니다.
예시
다음 작업은 associates 역할에서 여러 권한을 제거합니다.
db.revokePrivilegesFromRole( "associate", [ { resource: { db: "products", collection: "" }, actions: [ "createCollection", "createIndex", "find" ] }, { resource: { db: "products", collection: "orders" }, actions: [ "insert" ] } ], { w: "majority" } )