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