Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

취소 권한

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 필요한 액세스 권한
  • 예시
revokePrivilegesFromRole

명령이 실행 되는 데이터베이스 의 사용자 정의 역할 에서 지정된 권한을 제거합니다.

mongosh에서는 이 명령을 db.revokePrivilegesFromRole() 헬퍼 메서드를 통해서도 실행할 수 있습니다.

헬퍼 메서드는 mongosh 사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

중요

이 명령은 M0, M2 및 M5 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.

명령은 다음과 같은 구문을 가집니다:

db.runCommand(
{
revokePrivilegesFromRole: "<role>",
privileges: [
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
writeConcern: <write concern document>,
comment: <any>
}
)

이 명령은 다음 필드를 사용합니다.

필드
유형
설명
revokePrivilegesFromRole
문자열
권한을 취소할 사용자 정의 역할입니다.
privileges
배열
역할에서 제거할 권한의 배열입니다. 권한 형식에 대한 자세한 내용은 privileges 를 참조하세요.
writeConcern
문서

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

comment
any

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 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" }
}
)

돌아가기

무효화 사용자 캐시