권한 작업은 사용자가 리소스 에서 수행할 수 있는 작업을 정의합니다. MongoDB 권한 은 리소스 와 허용된 작업으로 구성됩니다. 이 페이지에는 사용 가능한 작업이 공통 목적별로 그룹화되어 나열되어 있습니다.
MongoDB는 미리 정의된 리소스 쌍과 허용된 작업이 포함된 기본 제공 역할을 제공합니다. 부여된 작업 목록은 다음과 같습니다.
사용자 지정 역할을 정의하려면 다음을 참조하세요.
쿼리 및 쓰기 작업
find사용자는 다음 명령과 그에 상응하는 헬퍼 메서드를 수행할 수 있습니다.
aggregate, 모든 파이프라인 작업용,$collStats,$out,$indexStats제외.killCursors커서가 현재 인증된 사용자와 연결되어 있는 경우에만 사용할 수 있습니다.mapReduce{out: inline}옵션으로 바꿉니다.resetError(MongoDB 5.0에서 제거됨)
컬렉션으로 출력할 때 명령의 쿼리 부분과 도우미
mapReducedb.collection.mapReduce()메서드에 필요합니다.2} 명령 및
findAndModifydb.collection.findAndModify()헬퍼 메서드의 쿼리 부분에 필요합니다.2}
renameCollection및cloneCollectionAsCapped명령과db.collection.renameCollection()도우미 메서드에 대한 소스 컬렉션에 필요합니다.listDatabases권한 작업이 사용자에게 없는 경우listDatabases명령을 실행하여 권한이 있는 데이터베이스(특정 컬렉션에 대한 권한이 사용자에게 있는 데이터베이스 포함) 목록을 반환할 수 있습니다. 이는 명령이 실행될 때authorizedDatabases옵션이 지정되지 않았거나true로 설정된 경우에 가능합니다.이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
insert사용자는 다음 명령과 그에 상응하는 방법을 수행할 수 있습니다.
컬렉션으로 출력할
mapReduce때 명령 및db.collection.mapReduce()헬퍼 메서드의 출력 부분에 필요합니다.8} 또는
$merge파이프라인 연산자를 사용할 때aggregate명령 및db.collection.aggregate()$out도우미 메서드에 필요합니다.update2} 및findAndModify명령 및 옵션과 함께 사용할 경우 이에 상응하는 도우미 메서드에upsert필요합니다.다음 명령 및 해당 도우미 메서드에 대한 대상 컬렉션에 필요합니다.
이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
remove사용자는
delete명령 및 이에 상응하는 도우미 메서드를 수행할 수 있습니다.2}
db.collection.findAndModify()명령 및findAndModify메서드의 쓰기 부분에 필요합니다.컬렉션으로 출력할 때
replace작업을 지정할 때mapReduce명령 및db.collection.mapReduce()도우미 메서드에 필요합니다.8} 파이프라인 연산자를
aggregate$out사용할 때db.collection.aggregate()명령 및 도우미 메서드에 필요합니다.이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
update사용자는
update명령 및 이에 상응하는 도우미 메서드를 수행할 수 있습니다.8} 작업을 지정하지
mapReduce않고 컬렉션으로 출력할db.collection.mapReduce()때 명령 및 도우미 메서드에 필요합니다.replacefindAndModify2} 명령 및 도우미 메서드에 필요합니다.db.collection.findAndModify()이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
bypassDocumentValidation사용자는
bypassDocumentValidation옵션을 지원하는 명령 및 메서드에서 스키마 유효성 검사를 건너뛸 수 있습니다. 다음 명령어와 해당 메서드는 스키마 유효성 검사 우회를 지원합니다.이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
useUUID사용자는 UUID를 네임스페이스처럼 사용하여 다음 명령을 실행할 수 있습니다.
예를 들어, 이 권한은 사용자에게 지정된 UUID로 컬렉션에서
find명령을 실행하는 다음 명령을 실행할 수 있는 권한을 부여합니다. 또한 이 작업을 성공적으로 수행하려면 사용자에게 지정된 UUID에 해당하는 컬렉션 네임스페이스에서find명령을 실행할 수 있는 권한이 있어야 합니다.db.runCommand({find: UUID("123e4567-e89b-12d3-a456-426655440000")}) 컬렉션 UUID에 대한 자세한 내용은 컬렉션을 참조하세요.
이 작업을
cluster리소스에 적용합니다.
데이터베이스 관리 작업
changeOwnCustomData사용자는 자신의 사용자 지정 정보를 변경할 수 있습니다. 이 조치 을 데이터베이스 리소스에 적용합니다. 자체 관리 배포서버에서 비밀번호 및 사용자 지정 데이터 변경도 참조하세요.
changeOwnPassword사용자는 자신의 비밀번호를 변경할 수 있습니다. 이 조치 을 데이터베이스 리소스에 적용합니다. 자체 관리 배포서버에서 비밀번호 및 사용자 지정 데이터 변경도 참조하세요.
createCollection사용자는
db.createCollection()메서드를 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
createIndexdb.collection.createIndex()2} 메서드 및createIndexes명령에 대한 액세스를 제공합니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
dropCollection사용자는
db.collection.drop()메서드를 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
enableProfiler사용자는
db.setProfilingLevel()메서드를 수행할 수 있습니다. 이 작업을 데이터베이스 리소스에 적용합니다.
planCacheIndexFilter사용자는
planCacheClearFilters,planCacheListFilters및planCacheSetFilter명령을 실행할 수 있습니다. 컬렉션 리소스에planCacheIndexFilter작업을 적용합니다.
setAuthenticationRestriction사용자는 다음 명령을 실행할 때
user문서에서 authenticationRestrictions 필드를 지정할 수 있습니다.사용자는 다음 명령을 실행할 때
role문서에서authenticationRestrictions필드를 지정할 수 있습니다.참고
다음 기본 제공 역할에 이 권한이 부여됩니다.
userAdmin역할은 역할이 할당된 데이터베이스에 이 권한을 제공합니다.userAdminAnyDatabase역할은 모든 데이터베이스에서 이 권한을 제공합니다.
이 작업을 데이터베이스 리소스에 적용합니다.
setFeatureCompatibilityVersion사용자는
setFeatureCompatibilityVersion명령을 실행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
unlock사용자는
db.fsyncUnlock()메소드를 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
배포 관리 작업
cleanupOrphaned사용자는
cleanupOrphaned명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
inprog2} 메서드를 사용하여
db.currentOp()보류 중 및 활성 작업에 대한 정보를 반환할 수 있습니다. 이 작업을cluster리소스에 적용합니다.inprog권한이 없더라도mongod인스턴스에서 사용자는db.currentOp( { "$ownOps": true } )를 실행하여 자신의 작업을 볼 수 있습니다.
invalidateUserCacheinvalidateUserCache명령에 대한 액세스를 제공합니다. 이 작업을cluster리소스에 적용합니다.
killop사용자는
db.killOp()메소드를 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
planCacheRead사용자는 다음 작업을 실행할 수 있습니다.
$planCacheStats링크 및 설명 추가.
이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
planCacheWrite사용자는
planCacheClear명령과PlanCache.clear()및PlanCache.clearPlansByQuery()메서드를 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
변경 스크림 작업
changeStreamchangeStream을 사용하고 특정 컬렉션, 특정 데이터베이스의 모든 비system컬렉션 또는 모든 데이터베이스의 모든 비system컬렉션에서find를 사용하면 해당 리소스에 대한 변경 스트림 커서를 열 수 있습니다.
복제 옵션
replSetGetConfig사용자는 복제본 세트의 구성을 볼 수 있습니다.
replSetGetConfig2} 명령 및rs.conf()도우미 메서드에 대한 액세스를 제공합니다.이 작업을
cluster리소스에 적용합니다.
replSetGetStatus사용자는
replSetGetStatus명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
replSetStateChange사용자는
replSetFreeze,replSetMaintenance,replSetStepDown,replSetSyncFrom명령을 통해 복제본 세트 상태를 변경할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
샤딩 작업
addShard사용자는
addShard명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
clearJumboFlag2} 명령을 사용하여 청크의 점보 플래그를 지우는 데
clearJumboFlag필요합니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.clusterManager기본 제공 역할에 포함되어 있습니다.
enableSharding참고
해당 리소스
리소스설명사용자에게 다음 작업을 수행할 수 있는 권한을 부여합니다.
enableSharding명령을 사용하여 데이터베이스에서 샤딩을 활성화하고shardCollection명령을 사용하여 컬렉션을 샤딩합니다.
다음 샤드 영역 작업을 수행할 수 있는 권한을 사용자에게 부여합니다.
데이터베이스 의 해당
updatefind컬렉션에 / 작업이 있는 경우 이러한 샤드 구역 작업을 수행할 수도 있습니다.config자세한 내용은 특정 작업을 참조하세요.
refineCollectionShardKey샤드 collection의 샤드 키를 정제할 수 있는 권한을 제공합니다. 즉,
refineCollectionShardKey명령을 실행합니다. 이 조치를 데이터베이스 또는 collection 리소스에 적용합니다.clusterManager기본 제공 역할에 포함되어 있습니다.
reshardCollection사용자는
reshardCollection명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.버전 5.0에 추가.
flushRouterConfig사용자는
flushRouterConfig명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
getShardMap사용자는
getShardMap명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
listShards사용자는
listShards명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
moveChunk사용자는
moveChunk및moveRange명령을 수행할 수 있습니다. 또한 사용자는 적절한 데이터베이스 리소스에 권한이 적용된 경우movePrimary명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
removeShard사용자는
removeShard명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
shardedDataDistribution사용자는
$shardedDataDistribution집계 파이프라인 스테이지를 수행할 수 있습니다.버전 6.0.3에 추가되었습니다.
shardingState사용자는
shardingState명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
서버 관리 작업
applicationMessage사용자는
logApplicationMessage명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
bypassWriteBlockingMode2} 명령으로 쓰기가 차단된 경우에도 사용자가 쓰기를 수행할 수 있습니다.
setUserWriteBlockMode이 작업을cluster리소스에 적용합니다.
collMod사용자는
collMod명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
compact사용자는
compact명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
compactStructuredEncryptionData사용자는
compactStructuredEncryptionData명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
convertToCapped사용자는
convertToCapped명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
dropConnections사용자는
dropConnections명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
dropDatabase사용자는
dropDatabase명령을 수행할 수 있습니다. 이 작업을 데이터베이스 리소스에 적용합니다.
dropIndex사용자는
dropIndexes명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
forceUUID사용자는 명령을
applyOps사용하여 사용자 정의 컬렉션 UUID를 사용하여 컬렉션을 만들 수 있습니다.이 작업을
cluster리소스에 적용합니다.
fsync사용자는
fsync명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
getDefaultRWConcern사용자는 관리
getDefaultRWConcern명령을 실행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
getParameter사용자는
getParameter명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
oidResetObjectID에사용되는 5바이트 임의 문자열을 재설정하는 데 필요합니다.
logRotate사용자는
logRotate명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
reIndex사용자는
reIndex명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
renameCollectionSameDB2} 명령을 사용하여 현재 데이터베이스의 컬렉션 이름을 바꿀 수 있습니다.
renameCollection이 작업을 데이터베이스 리소스에 적용합니다.또한 사용자는 소스 컬렉션에 대한
find가 있거나 대상 컬렉션에 대한find가 없어야 합니다.새 이름의 컬렉션이 이미 존재하는 경우 사용자는 대상 컬렉션에 대한
dropCollection작업도 가지고 있어야 합니다.
rotateCertificates사용자는
rotateCertificates명령 명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
setDefaultRWConcern사용자는 관리
setDefaultRWConcern명령을 실행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
setParameter사용자는
setParameter명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
setUserWriteBlockMode사용자는
setUserWriteBlockMode명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
shutdown사용자는
shutdown명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
세션 작업
impersonate사용자는
users및roles패턴으로killAllSessionsByPattern명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.killAllSessionsByPattern명령을 실행하려면 사용자에게 클러스터 리소스에 대한killAnySession권한도 있어야 합니다.
listSessions사용자는 모든 사용자 또는 지정된 사용자에 대해
$listSessions작업 또는$listLocalSessions작업을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
killAnySession사용자는
killAllSessions및killAllSessionsByPattern명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
Atlas 검색 인덱스 작업
다음 작업을 통해 사용자는 Atlas Search 데이터베이스 명령을 실행할 수 있습니다. 이러한 작업은 MongoDB Atlas에서 호스팅되는 배포에만 해당됩니다.
createSearchIndexes사용자는
createSearchIndexes데이터베이스 명령을 실행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
dropSearchIndex사용자는
dropSearchIndex데이터베이스 명령을 실행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
listSearchIndexes사용자는
$listSearchIndexes집계 단계를 실행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
updateSearchIndex사용자는
updateSearchIndex데이터베이스 명령을 실행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
진단 작업
collStats사용자는
collStats명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
connPoolStats사용자는
connPoolStats명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
dbHash사용자는
dbHash명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
dbStats사용자는
dbStats명령을 수행할 수 있습니다. 이 작업을 데이터베이스 리소스에 적용합니다.
getCmdLineOpts사용자는
getCmdLineOpts명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
getLog사용자는
getLog명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
indexStats사용자는
$indexStats집계 파이프라인 단계를 실행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.$indexStats단계를 사용하려면 사용자는 최소한clusterMonitor역할로 인증해야 합니다.
listDatabases사용자는
listDatabases명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.listDatabases권한 작업이 사용자에게 없는 경우listDatabases명령을 실행하여 권한이 있는 데이터베이스(특정 컬렉션에 대한 권한이 사용자에게 있는 데이터베이스 포함) 목록을 반환할 수 있습니다. 이는 명령이 실행될 때authorizedDatabases옵션이 지정되지 않았거나true로 설정된 경우에 가능합니다.
listCollections사용자는
listCollections명령을 수행할 수 있습니다. 이 작업을 데이터베이스 리소스에 적용합니다.참고
필요한 권한이 없는 사용자도
authorizedCollections및nameOnly옵션을 모두true로 설정하여listCollections명령을 실행할 수 있습니다. 이 경우 명령은 사용자에게 권한이 있는 컬렉션의 이름과 유형만 반환합니다.
listIndexes사용자는
listIndexes명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
queryStatsRead사용자는
transformIdentifiers옵션 없이$queryStats애그리게이션 단계를 실행할 수 있습니다.
queryStatsReadTransformed사용자는
transformIdentifiers옵션 유무에 관계없이$queryStats애그리게이션 단계를 실행할 수 있습니다.
serverStatus사용자는
serverStatus명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
validate사용자는
validate및validateDBMetadata명령을 수행할 수 있습니다. 이 작업을 데이터베이스 또는 컬렉션 리소스에 적용합니다.
top사용자는
top명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.
내부 작업
applyOps사용자는
applyOps명령을 수행할 수 있습니다. 이 작업을cluster리소스에 적용합니다.