자체 관리형 배포에 대한 리소스 문서
리소스 문서는 actions
권한이 허용되는 리소스를 지정합니다.
데이터베이스 및/또는 컬렉션 리소스
데이터베이스 및/또는 컬렉션을 지정하려면 다음 구문을 사용합니다.
{ db: <database>, collection: <collection> }
데이터베이스 컬렉션을 리소스로 지정
리소스 문서에서 db
및 collection
필드를 모두 비어 있지 않은 문자열로 지정하는 경우 리소스는 지정된 데이터베이스에 있는 지정된 컬렉션입니다. 예를 들어 다음 문서는 products
데이터베이스에 있는 inventory
컬렉션의 리소스를 지정합니다.
{ db: "products", collection: "inventory" }
admin
데이터베이스가 아닌 데이터베이스에 대해 범위가 지정된 사용자 정의 역할의 경우 해당 권한에 대한 리소스 사양에 역할과 동일한 데이터베이스를 지정해야 합니다. admin
데이터베이스에 대해 범위가 지정된 사용자 정의 역할은 다른 데이터베이스를 지정할 수 있습니다.
데이터베이스를 리소스로 지정
collection
필드만 빈 문자열(""
)인 경우 리소스는 시스템 컬렉션 을 제외한 지정된 데이터베이스입니다. 예를 들어, 다음 리소스 문서는 시스템 컬렉션을 제외한 test
데이터베이스의 리소스를 지정합니다.
{ db: "test", collection: "" }
admin
데이터베이스가 아닌 데이터베이스에 대해 범위가 지정된 사용자 정의 역할의 경우 해당 권한에 대한 리소스 사양에 역할과 동일한 데이터베이스를 지정해야 합니다. admin
데이터베이스에 대해 범위가 지정된 사용자 정의 역할은 다른 데이터베이스를 지정할 수 있습니다.
참고
데이터베이스를 리소스로 지정하는 경우 다음과 같이 명시적으로 이름을 지정하지 않는 한 시스템 컬렉션은 제외됩니다.
{ db: "test", collection: "system.js" }
시스템 컬렉션에는 다음이 포함되지만 이에 국한되지는 않습니다.
system.users
데이터베이스의 자체 관리admin
배포서버 내 컬렉션system.roles
데이터베이스의 자체 관리admin
배포서버 내 컬렉션
데이터베이스 전반의 컬렉션을 리소스로 지정
db
필드만 빈 string(""
)인 경우 리소스는 모든 데이터베이스에서 지정된 이름을 가진 모든 컬렉션입니다. 예를 들어, 다음 문서는 모든 데이터베이스에 있는 모든 accounts
컬렉션의 리소스를 지정합니다.
{ db: "", collection: "accounts" }
사용자 정의 역할의 경우, admin
데이터베이스에 대해 범위가 지정된 역할만 해당 권한에 대해 이 자원 스펙을 가질 수 있습니다.
모든 데이터베이스의 모든 비시스템 컬렉션 지정
db
및 collection
필드가 모두 빈 문자열(""
)인 경우 리소스는 모든 데이터베이스에서 시스템 컬렉션을 제외한 모든 컬렉션입니다.
{ db: "", collection: "" }
사용자 정의 역할의 경우, admin
데이터베이스에 대해 범위가 지정된 역할만 해당 권한에 대해 이 자원 스펙을 가질 수 있습니다.
클러스터 리소스
클러스터를 리소스로 지정하려면 다음 구문을 사용하세요.
{ cluster : true }
특정 데이터베이스 또는 컬렉션 세트에 대한 조치가 아닌 시스템 상태에 영향을 미치는 조치에 cluster
리소스를 사용합니다. 이러한 조치의 예로는 shutdown
, replSetReconfig
및 addShard
등이 있습니다. 예를 들어 다음 조치는 cluster
에 shutdown
문서를 부여합니다.
{ resource: { cluster : true }, actions: [ "shutdown" ] }
사용자 정의 역할의 경우, admin
데이터베이스에 대해 범위가 지정된 역할만 해당 권한에 대해 이 자원 스펙을 가질 수 있습니다.
anyResource
내부 리소스 anyResource
는 시스템의 모든 리소스에 대한 액세스 권한을 부여하며 내부용으로 사용됩니다. 예외적인 경우를 제외하고는 이 리소스를 사용하지 마세요. 이 리소스의 구문은 { anyResource: true }
입니다.