AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

기본 제공 역할

MongoDB 역할 기반 권한 부여를 통해 데이터 및 명령에 대한 액세스 부여합니다. MongoDB 데이터베이스 시스템에서 일반적으로 필요한 다양한 수준의 액세스 을 부여하는 역할을 내장 제공합니다.

역할은 정의된 리소스 에 대해 일련의 조치 를 수행할 수 있는 권한을 부여합니다. 역할 자신이 정의된 데이터베이스 에 적용되며 컬렉션 수준까지 세부적으로 액세스 부여할 수 있습니다.

각 내장 역할 역할 데이터베이스 에 있는 모든 비시스템 컬렉션에 대한 데이터베이스 수준과 모든 시스템 컬렉션에 대한 컬렉션 수준에서 액세스 정의합니다.

시스템 컬렉션 에는 다음 항목이 포함됩니다.

  • <database>.system.* namespace

  • local.replset.* 복제본 세트 네임스페이스

비시스템 컬렉션 은 이전 목록의 네임스페이스에 없는 컬렉션입니다.

MongoDB Atlas 데이터베이스 사용자는 자체 호스팅 배포서버 사용자와는 다른 내장 역할을 가지고 있습니다. 그러나 MongoDB는 동일한 권한 조치설정에서 각 배포서버 유형에 대한 내장 역할을 빌드합니다.

페이지 상단의 선택기를 사용하여 배포서버 유형을 선택하고 사용 가능한 내장 역할을 확인합니다.

이 섹션에서는 MongoDB Atlas 내장 역할과 MongoDB 역할 에 대해 설명합니다.

MongoDB Atlas 사용자 인터페이스에서 데이터베이스 사용자를 생성하고 내장 역할을 할당합니다. 자세한 내용은 데이터베이스 사용자 추가를 참조하세요.

MongoDB Atlas 현재 MongoDB Atlas 사용자 권한으로 지원 하지 않는 일반적인 명령에 대해 자세히 학습 지원되지 않는 명령을 참조하세요.

다음 역할은 MongoDB Atlas에서만 사용 가능하며 해당하는 자체 관리형 MongoDB 역할이 없습니다.

killOpSession

활성 작업을 보고 종료하고 세션을 관리할 수 있는 기능을 제공합니다.

클러스터 전체에 대해 다음과 같은 조치를 제공합니다.

autoCompact

배경 압축을 활성화하기 위해 autoCompact 명령을 실행할 수 있는 기능을 제공합니다.

배경 압축은 사용 가능한 파일을 주기적으로 반복하고 불필요한 디스크 공간을 운영 체제에 할당합니다. autoCompact에 대한 인증 요구 사항에 대해 자세히 알아보려면 필요한 권한을 참조하세요.

클러스터 전체에 대해 다음과 같은 조치를 제공합니다.

manageShardBalancer

범위 크기 및 밸런서 상태를 포함하여 샤드 밸런서 설정을 관리할 수 있는 기능을 제공합니다. 샤드 밸런싱에 대한 자세한 내용은 샤딩된 클러스터 밸런서를 참조하십시오.

config.settings 컬렉션에서 다음 조치를 제공합니다.

admin, local 및 config 데이터베이스 또는 __mdb_internal_ 접두사가 붙은 데이터베이스 에는 쓰지 않도록 합니다. MongoDB Atlas 이러한 데이터베이스에서 여러 컬렉션을 관리합니다. 자세한 학습은 데이터베이스 및 컬렉션을 참조하세요.

atlasAdmin 는 밸런서 를 관리 위해 config.settings 컬렉션 에 대한 update 권한 가집니다.

다음 표에서 는 작업이 timeseries 컬렉션도 지원함을 나타냅니다.

MongoDB Atlas 내장 역할
MongoDB 역할
상속된 역할 또는 권한 작업
Atlas admin
atlasAdmin
backup

backup

clusterMonitor

clusterMonitor

dbAdmin

dbAdmin

dbAdminAnyDatabase

dbAdminAnyDatabase

enableSharding

enableSharding

read

read

readWrite

readWrite

readWriteAnyDatabase

readWriteAnyDatabase

readAnyDatabase

readAnyDatabase

killOpSession
autoCompact
manageShardBalancer

다음은 MongoDB Atlas 내장 역할에 사용되는 MongoDB 내장 역할입니다.

MongoDB 역할
설명

backup

데이터 백업에 필요한 최소한의 권한을 제공합니다. 이 역할은 MongoDB Cloud Manager 백업 에이전트, Ops Manager 백업 에이전트를 사용하거나 mongodump를 사용하여 전체 mongod 인스턴스를 백업할 수 있는 충분한 권한을 제공합니다.

clusterMonitor

MongoDB Cloud Manager와 MongoDB Ops Manager 모니터링 에이전트와 같은 모니터링 도구에 대한 읽기 전용 액세스를 제공합니다.

dbAdmin

스키마 관련 작업, 인덱싱, 통계 수집 등의 관리 작업을 수행하는 기능을 제공합니다. 이 역할은 사용자 및 역할 관리에 대한 권한을 부여하지 않습니다.

dbAdminAnyDatabase

local 및 config를 제외한 모든 데이터베이스에 대해 dbAdmin과 동일한 권한을 제공합니다. 이 역할은 클러스터 전체에 대해 listDatabases 조치도 제공합니다.

enableSharding

컬렉션에 대해 샤딩을 활성화하고 기존 샤드 키를 수정하는 기능을 제공합니다.

read

모든 비시스템컬렉션과 컬렉션 system.js 에 대한 읽기 액세스 제공합니다.

readAnyDatabase

local 및 config를 제외한 모든 데이터베이스에서 read와 동일한 읽기 전용 권한을 제공합니다. 이 역할은 클러스터 전체에 대한 listDatabases 조치도 제공합니다.

이 역할은 클러스터 관리 리소스가 아닌 데이터베이스 리소스에 대한 권한을 부여합니다.

readWrite

역할 의 모든 권한과 read 모든 비시스템 컬렉션 및 컬렉션 의 system.js 데이터를 수정할 수 있는 기능 을 제공합니다.

readWriteAnyDatabase

local 및 config를 제외한 모든 데이터베이스에서 readWrite와 동일한 권한을 제공합니다. 이 역할은 다음 또한 제공합니다.

이 역할은 클러스터 관리 리소스가 아닌 데이터베이스 리소스에 대한 권한을 부여합니다.

내장 역할이 요구 사항을 충족하지 않는 경우 사용자 정의 역할을 만듭니다. 자세한 내용은 사용자 지정 데이터베이스 역할 구성을 참조하세요.

MongoDB 자체 관리형 배포에서 다음 내장 역할을 제공합니다.

내장 역할의 권한을 보려면 rolesInfo 명령을 showPrivileges 및 showBuiltinRoles 필드를 모두 true로 설정하여 실행하십시오. 다음 명령은 readWrite 역할 에 대한 권한을 보여줍니다.

db.getRole("readWrite", { showPrivileges: true, showBuiltinRoles: true } )
{
db: 'test',
role: 'readWrite',
roles: [],
privileges: [
{
resource: { db: 'test', collection: '' },
actions: [
'changeStream',
'cleanupStructuredEncryptionData',
'collStats',
'compactStructuredEncryptionData',
'convertToCapped',
'createCollection',
'createIndex',
'createSearchIndexes',
'dbHash',
'dbStats',
'dropCollection',
'dropIndex',
'dropSearchIndex',
'find',
'insert',
'killCursors',
'listCollections',
'listIndexes',
'listSearchIndexes',
'updateSearchIndex',
'planCacheRead',
'performRawDataOperations',
'remove',
'renameCollectionSameDB',
'update'
]
},
{
resource: { db: 'test', collection: 'system.js' },
actions: [
'changeStream',
'cleanupStructuredEncryptionData',
'collStats',
'compactStructuredEncryptionData',
'convertToCapped',
'createCollection',
'createIndex',
'createSearchIndexes',
'dbHash',
'dbStats',
'dropCollection',
'dropIndex',
'dropSearchIndex',
'find',
'insert',
'killCursors',
'listCollections',
'listIndexes',
'listSearchIndexes',
'updateSearchIndex',
'planCacheRead',
'performRawDataOperations',
'remove',
'renameCollectionSameDB',
'update'
]
}
],
inheritedRoles: [],
inheritedPrivileges: [
{
resource: { db: 'test', collection: '' },
actions: [
'changeStream',
'cleanupStructuredEncryptionData',
'collStats',
'compactStructuredEncryptionData',
'convertToCapped',
'createCollection',
'createIndex',
'createSearchIndexes',
'dbHash',
'dbStats',
'dropCollection',
'dropIndex',
'dropSearchIndex',
'find',
'insert',
'killCursors',
'listCollections',
'listIndexes',
'listSearchIndexes',
'updateSearchIndex',
'planCacheRead',
'performRawDataOperations',
'remove',
'renameCollectionSameDB',
'update'
]
},
{
resource: { db: 'test', collection: 'system.js' },
actions: [
'changeStream',
'cleanupStructuredEncryptionData',
'collStats',
'compactStructuredEncryptionData',
'convertToCapped',
'createCollection',
'createIndex',
'createSearchIndexes',
'dbHash',
'dbStats',
'dropCollection',
'dropIndex',
'dropSearchIndex',
'find',
'insert',
'killCursors',
'listCollections',
'listIndexes',
'listSearchIndexes',
'updateSearchIndex',
'planCacheRead',
'performRawDataOperations',
'remove',
'renameCollectionSameDB',
'update'
]
}
],
isBuiltin: true
}

각각의 데이터베이스에는 다음과 같은 클라이언트 역할이 포함됩니다.

read

모든 비시스템컬렉션과 컬렉션 system.js 에 대한 읽기 액세스 제공합니다.

참고

이 역할 system.namespaces 컬렉션 에 직접 액세스 할 수 있는 권한을 제공하지 않습니다.

이 역할은 다음과 같은 조치를 허용하여 읽기 액세스 권한을 제공합니다.

listDatabases 권한 조치 없는 사용자는 listDatabases 명령을 실행 권한이 있는 데이터베이스 목록을 반환할 수 있습니다. 여기에는 사용자가 특정 컬렉션에 대한 권한을 가진 데이터베이스가 포함됩니다. authorizedDatabases 옵션을 지정하지 않거나 true로 설정하다 명령을 실행합니다.

readWrite

역할 의 모든 권한과 read 모든 비시스템 컬렉션 및 컬렉션 의 system.js 데이터를 수정할 수 있는 기능 을 제공합니다.

이 역할은 이러한 컬렉션에 대해 다음과 같은 조치를 제공합니다.

각각의 데이터베이스에는 다음과 같은 데이터베이스 관리 역할이 포함되어 있습니다.

dbAdmin

스키마 관련 작업, 인덱싱, 통계 수집 등의 관리 작업을 수행하는 기능을 제공합니다. 이 역할은 사용자 및 역할 관리에 대한 권한을 부여하지 않습니다.

이 역할 다음과 같은 권한을 제공합니다.

Resource
허용된 조치
    모든 비시스템 컬렉션
    (database resource)

      이러한 컬렉션의 경우 dbAdmin 에는 find와 같은 전체 읽기 액세스 권한이 포함되지 않습니다.

      dbOwner

      데이터베이스 소유자는 데이터베이스에 대해 모든 관리 조치를 수행할 수 있습니다. 이 역할은 readWrite, dbAdmin, userAdmin 역할이 부여하는 권한을 조합합니다.

      userAdmin

      현재 데이터베이스 에서 역할과 사용자를 만들고 수정할 수 있는 기능 을 제공합니다. userAdmin 역할 통해 사용자는 자신을 포함한 모든 사용자에게 모든 권한 부여할 수 있습니다. 또한 이 역할은 데이터베이스 또는 클러스터 ( admin 데이터베이스 로 범위가 지정된 경우)에 대한 슈퍼유저 액세스를 간접적으로 제공합니다.

      userAdmin 역할은 다음과 같은 조치를 명시적으로 제공합니다.

      경고

      역할 부여가 보안에 미치는 userAdmin 영향을 이해합니다. 데이터베이스 에 대해 이 역할 가진 사용자는 해당 데이터베이스 에 대한 모든 권한 자신에게 할당할 수 있습니다. admin 데이터베이스에 userAdmin 역할 부여하면 클러스터에 대한 슈퍼유저 액세스가 간접적으로 제공되므로 보안에 더 많은 영향을 미칩니다. admin 범위를 사용하면 userAdmin 역할 가진 사용자는 userAdminAnyDatabase를 포함한 클러스터 전체의 역할 또는 권한을 부여할 수 있습니다.

      admin 데이터베이스에는 단일 데이터베이스가 아닌 전체 시스템을 관리하기 위한 다음과 같은 역할이 포함되어 있습니다. 이러한 역할에는 복제본 세트 및 샤딩된 클러스터 관리 기능이 포함되지만 이에 국한되지는 않습니다.

      clusterAdmin

      최고의 클러스터 관리 액세스 권한을 제공합니다. 이 역할은 clusterManager, clusterMonitor, hostManager 역할이 부여하는 권한을 조합합니다. 이 역할은 다음과 같은 추가 권한도 제공합니다.

      clusterManager

      클러스터 에 대한 관리 및 모니터링 조치를 제공합니다. 이 역할 있는 사용자는 샤딩 및 복제 에 각각 사용되는 config 및 local 데이터베이스에 액세스 할 수 있습니다. 또한 이 역할 querySettings 조치 제공합니다.

      Resource
      작업

        모두 databases

          clusterManager는 config 및 local 데이터베이스에 대한 추가 권한을 제공합니다.

          config 데이터베이스에 대해 다음과 같은 조치를 허용합니다.

          Resource
          작업

          config 데이터베이스의 모든 비시스템 컬렉션

              local 데이터베이스에 대해 다음과 같은 조치를 허용합니다.

              Resource
              작업

              local 데이터베이스의 모든 비시스템 컬렉션

                system.replset 컬렉션

                  clusterMonitor

                  MongoDB Cloud Manager와 MongoDB Ops Manager 모니터링 에이전트와 같은 모니터링 도구에 대한 읽기 전용 액세스를 제공합니다.

                  클러스터 전체에 대해 다음 조치를 허용합니다.

                    클러스터의 모든 데이터베이스에 대해 다음 조치를 허용합니다.

                    클러스터의 모든 system.profile 컬렉션에 대해 find 조치를 허용합니다.

                    config 데이터베이스에 대해 다음과 같은 조치를 허용합니다.

                    local 데이터베이스에 대해 다음과 같은 조치를 허용합니다.

                    directShardOperations

                    MongoDB 8.0부터 directShardOperations 역할을 사용하여 샤드에 대해 직접 명령을 실행해야 하는 유지 관리 작업을 수행할 수 있습니다.

                    경고

                    directShardOperations 역할 사용하여 명령을 실행하면 클러스터 올바르게 작동하지 않고 데이터가 손상될 수 있습니다. directShardOperations 역할 유지 관리 목적으로만 사용하거나 MongoDB 지원 의 지침 에 따라 사용하세요. 유지 관리 작업 수행이 완료되면 directShardOperations 역할 사용을 중지합니다.

                    enableSharding

                    컬렉션에 대해 샤딩을 활성화하고 기존 샤드 키를 수정하는 기능을 제공합니다.

                    모든 비시스템 컬렉션에 대해 다음 조치를 제공합니다.

                    hostManager

                    서버를 모니터링하고 관리할 수 있는 기능을 제공합니다.

                    클러스터 전체에 대해 다음 조치를 제공합니다.

                      클러스터의 모든 데이터베이스에 대해 다음 조치를 제공합니다.

                      searchCoordinator

                      __mdb_internal_search 데이터베이스에 대한 readAnyDatabase 권한 및 쓰기 (write) 권한을 제공합니다.

                      중요

                      __mdb_internal_search 데이터베이스 의 내용을 수정하지 마세요.

                      클러스터 전체에 대해 다음 조치 제공합니다.

                      admin 데이터베이스에는 데이터 백업 및 복원을 위한 다음 역할이 포함되어 있습니다.

                      backup

                      데이터 백업에 필요한 최소한의 권한을 제공합니다. 이 역할은 MongoDB Cloud Manager 백업 에이전트, Ops Manager 백업 에이전트를 사용하거나 mongodump를 사용하여 전체 mongod 인스턴스를 백업할 수 있는 충분한 권한을 제공합니다.

                      config 데이터베이스의 settings 컬렉션에 대한 insert 및 update 조치를 제공합니다.

                      anyResource에서 다음 조치를 제공합니다.

                      클러스터 전체에 대해 다음과 같은 조치를 제공합니다.

                      다음에 대해 find 조치를 제공합니다.

                      config.settings 컬렉션에 대해 insert 및 update 조치를 제공합니다.

                      backup 역할은 데이터베이스 프로파일링으로 실행할 때 존재하는 system.profile컬렉션을 백업할 수 있는 추가 권한을 제공합니다.

                      restore

                      비시스템 컬렉션에 대한 convertToCapped 조치를 제공합니다.

                      데이터에 system.profile 컬렉션 데이터가 포함되어 있지 않고 mongorestore 를 --oplogReplay 옵션 없이 실행 경우 백업에서 데이터를 복원 데 필요한 권한을 제공합니다.

                      백업 데이터에 system.profile 컬렉션 데이터가 포함되어 있거나 --oplogReplay:로 실행 경우 추가 권한이 필요합니다.

                      system.profile

                      백업 데이터에 system.profile 컬렉션 데이터가 포함되어 있고 대상 데이터베이스에 system.profile 컬렉션이 포함되어 있지 않은 경우, mongorestore 는 프로그램이 실제로 system.profile 문서를 복원하지 않더라도 컬렉션 생성을 시도합니다. 사용자는 데이터베이스 컬렉션에 createCollection 및 convertToCapped 조치를 수행하려면 system.profile 대해 추가 권한이 필요합니다.

                      기본 제공 역할 dbAdmin과 dbAdminAnyDatabase는 모두 추가 권한을 제공합니다.

                      --oplogReplay

                      --oplogReplay를 사용하여 실행하려면 anyResource에 anyAction이 있는 사용자 정의 역할을 생성하십시오.

                      --oplogReplay로 mongorestore를 실행해야 하는 사용자에게만 부여하세요.

                      클러스터 전체에 대해 다음 조치를 제공합니다.

                      모든 비시스템 컬렉션에 대해 다음 조치를 제공합니다.

                      system.js 컬렉션에 대해 다음 조치를 제공합니다.

                      anyResource에 대해 다음 조치를 제공합니다.

                      config 및 local 데이터베이스의 모든 비시스템 컬렉션에 대해 다음 조치를 제공합니다.

                      다음과 같은 조치를 제공합니다. admin.system.version

                      다음과 같은 조치를 제공합니다. admin.system.roles

                      admin.system.users 및 레거시 system.users 컬렉션에 대해 다음 조치를 제공합니다.

                      restore 에는 일반 수정 작업을 사용하여 admin.system.users 컬렉션의 문서를 수정할 수 있는 기능이 포함되어 있습니다. 그러나 이러한 데이터는 사용자 관리 방법을 통해서만 수정해야 합니다.

                      <database>.system.views 컬렉션에 대해 다음 조치를 제공합니다.

                      클러스터 전체에 대해 다음과 같은 조치를 제공합니다.

                      다음 역할은 admin 데이터베이스 에서 사용할 수 있으며 local 및 config를 제외한 모든 데이터베이스에 적용 권한을 제공합니다.

                      readAnyDatabase

                      local 및 config를 제외한 모든 데이터베이스에서 read와 동일한 읽기 전용 권한을 제공합니다. 이 역할은 클러스터 전체에 대한 listDatabases 조치도 제공합니다.

                      이 역할은 클러스터 관리 리소스가 아닌 데이터베이스 리소스에 대한 권한을 부여합니다.

                      config 및 local 데이터베이스에 액세스하려면 clusterManager 및 clusterMonitor 역할도 참조하세요.

                      readWriteAnyDatabase

                      local 및 config를 제외한 모든 데이터베이스에서 readWrite와 동일한 권한을 제공합니다. 이 역할은 다음 또한 제공합니다.

                      이 역할은 클러스터 관리 리소스가 아닌 데이터베이스 리소스에 대한 권한을 부여합니다.

                      config 및 local 데이터베이스에 액세스하려면 clusterManager 및 clusterMonitor 역할도 참조하세요.

                      userAdminAnyDatabase

                      local 및 config를 제외한 모든 데이터베이스에 대해 userAdmin과 동일한 사용자 관리 작업에 액세스할 수 있는 권한을 제공합니다.

                      userAdminAnyDatabase 는 클러스터에 대해 다음과 같은 권한 조치도 제공합니다.

                      이 역할은 admin 데이터베이스의 system.users 및 system.roles 컬렉션과 2.6 이전 버전의 MongoDB의 레거시 system.users 컬렉션에 대해 다음과 같은 권한 조치를 제공합니다.

                      userAdminAnyDatabase 역할은 사용자가 부여할 수 있는 권한을 제한하지 않습니다. 따라서 userAdminAnyDatabase 사용자는 현재 권한을 초과하는 권한을 자신에게 부여할 수 있으며, 역할이 사용자 관리 이상의 권한을 명시적으로 부여하지 않더라도 모든 권한을 자신에게 부여할 수도 있습니다. 이 역할은 사실상 MongoDB 시스템 슈퍼유저입니다.

                      config 및 local 데이터베이스에 액세스하려면 clusterManager 및 clusterMonitor 역할도 참조하세요.

                      dbAdminAnyDatabase

                      local 및 config를 제외한 모든 데이터베이스에 대해 dbAdmin과 동일한 권한을 제공합니다. 이 역할은 클러스터 전체에 대해 listDatabases 조치도 제공합니다.

                      config 및 local 데이터베이스에 액세스하려면 clusterManager 및 clusterMonitor 역할도 참조하세요.

                      MongoDB 5.0부터 dbAdminAnyDatabase에 ApplyOps 권한 조치가 포함됩니다.

                      시스템 전체에 대해 간접적 또는 직접적 슈퍼유저 액세스 권한을 제공하는 몇 가지 역할이 있습니다.

                      다음 역할은 모든 사용자에게 모든 데이터베이스 에 대한 권한 할당할 수 있는 기능 을 제공합니다. 이러한 역할 중 하나를 가진 사용자는 모든 데이터베이스에 대한 모든 권한 자신에게 할당할 수 있습니다.

                      다음 역할은 모든 리소스에 대한 전체 권한을 제공합니다.

                      root

                      다음과 같이 결합된 역할의 작업 및 모든 리소스에 대한 액세스 제공합니다.

                      또한 다음과 같은 권한 조치를 제공합니다.

                      6.0 버전에서 변경됨:

                      root 역할에는 config 데이터베이스의 system.preimages 컬렉션에 대한 find 및 remove 권한이 포함되어 있습니다.

                      __system

                      MongoDB는 복제본 세트 노드 및 mongos 인스턴스와 같이 클러스터 노드를 나타내는 사용자 객체에 이 역할을 할당합니다. 이 역할은 소유자에게 데이터베이스의 모든 객체에 대해 모든 조치를 수행할 수 있는 권한을 부여합니다.

                      예외적인 경우를 제외하고는 애플리케이션 또는 인간 관리자를 나타내는 사용자 객체에는 이 역할을 할당하지 마세요.

                      모든 리소스에 대한 모든 조치(예시: applyOps 명령 실행)에 액세스해야 하는 경우에는 이 역할을 할당하지 마세요. 대신, anyResource에 대해 anyAction을 부여하는 사용자 정의 역할을 만들고 이러한 작업에 액세스해야 하는 사용자만 이 액세스 권한을 갖도록 하세요.

                      내장 역할이 요구 사항을 충족하지 않는 경우 사용자 정의 역할을 만듭니다. 자세한 내용은 자체 관리형 배포서버에서 사용자 정의 역할을 참조하세요.

                      이 페이지 평가하기