이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 7537|회답: 1

MongoDB 권한 역할 테이블

[링크 복사]
게시됨 2016. 10. 9. 오후 5:04:10 | | |
MongoDB는 역할 기반 권한을 통해 데이터와 명령에 대한 접근을 부여하고, 데이터베이스 시스템에서 일반적으로 필요한 다양한 접근 수준을 제공하는 내장 역할을 제공합니다. 사용자 정의 역할도 만들 수 있습니다.
역할은 정의된 자원에 대해 일련의 동작을 수행할 권한을 부여합니다. 특정 역할은 정의된 데이터베이스에 적용되며, 컬렉션의 세분화까지 접근 권한을 부여할 수 있습니다.
MongoDB의 각 내장 역할은 해당 역할 데이터베이스 내 모든 비시스템 컬렉션과 모든 시스템 컬렉션에 대해 데이터베이스 수준에서 접근 권한을 정의합니다.
MongoDB는 모든 데이터베이스에 내장된 데이터베이스 사용자 및 데이터베이스 관리 역할을 제공합니다. MongoDB는 관리자 데이터베이스에서만 모든 내장 역할을 제공합니다.
이 섹션에서는 각 내장 역할에 대한 권한을 설명합니다. 또한 rolesInfo 명령을 발급하고 showPrivileges와 showBuiltinRolesfields를 모두 true로 설정하여 내장된 역할의 권한을 언제든지 확인할 수 있습니다.
데이터베이스 사용자 역할
모든 데이터베이스에는 다음과 같은 클라이언트 역할이 포함됩니다:
읽기
모든 비시스템 컬렉션과 다음 시스템 컬렉션(system.indexes, system.js, system.namespaces 컬렉션)의 데이터를 읽을 수 있는 기능을 제공합니다. 이 역할은 다음과 같은 동작을 부여하여 읽기 접근을 제공합니다:
  • 콜스탯
  • db해시
  • dbStats
  • 찾기
  • 킬커서
  • 목록 색인
  • 목록 컬렉션
읽기 쓰기
읽기 역할의 모든 권한과 비시스템 컬렉션 및 system.js 컬렉션의 데이터를 수정할 수 있는 기능을 제공합니다. 이 역할은 해당 컬렉션에 대해 다음과 같은 조치를 제공합니다:
  • 콜스탯
  • 컨버트투캡드
  • createCollection
  • db해시
  • dbStats
  • 드롭컬렉션
  • createIndex
  • 드롭인덱스
  • 빈캡
  • 찾기
  • 삽입
  • 킬커서
  • 목록 색인
  • 목록 컬렉션
  • 삭제
  • CollectionSameDB 이름 변경
  • 업데이트

데이터베이스 관리 역할
모든 데이터베이스에는 다음과 같은 데이터베이스 관리 역할이 포함됩니다:
dbAdmin
데이터베이스의 system.indexes, system.namespace, system.profile 컬렉션에 대해 다음과 같은 동작을 제공합니다:
  • 콜스탯
  • db해시
  • dbStats
  • 찾기
  • 킬커서
  • 목록 색인
  • 목록 컬렉션
  • dropCollection과 createCollection 모두 system.profile에서만
버전 2.6.4에서 변경됨: dbAdmin이 system.profilecollection에 createCollection을 추가했습니다. 이전 버전에서는 system.profile 컬렉션에만 dropCollection이 있었습니다.

모든 비시스템 컬렉션에 대해 다음과 같은 동작을 제공합니다. 이 역할은 비시스템 컬렉션에 대한 완전한 읽기 접근을 포함하지 않습니다:
  • 문서검증 우회(bypassDocumentValidation)
  • collMod
  • 콜스탯
  • 컴팩트
  • 컨버트투캡드
  • createCollection
  • createIndex
  • dbStats
  • 드롭컬렉션
  • 드롭데이터베이스
  • 드롭인덱스
  • enableProfiler
  • 재색인
  • CollectionSameDB 이름 변경
  • 수리데이터베이스
  • 저장 공간 세부사항
  • 검증
db오너
데이터베이스 소유자는 데이터베이스에 대해 모든 관리 작업을 수행할 수 있습니다. 이 역할은 readWrite, dbAdmin, userAdmin 역할에서 부여된 권한을 결합한 것입니다.
사용자관리자
현재 데이터베이스에서 역할과 사용자를 생성하고 수정할 수 있는 기능을 제공합니다. 이 역할은 또한 간접적으로 데이터베이스 또는 관리자 데이터베이스에 스코프가 부여된 경우 클러스터에 대한 슈퍼유저 접근을 제공합니다. TheuserAdmin 역할은 사용자가 자신을 포함한 모든 사용자에게 권한을 부여할 수 있게 합니다.
userAdmin 역할은 다음과 같은 동작을 명시적으로 제공합니다:
  • changeCustomData
  • 비밀번호 변경(changePassword)
  • createRole
  • createUser
  • 드롭롤
  • dropUser
  • 그랜트 역할
  • revokeRole
  • 보기 역할
  • viewUser

클러스터 행정 역할
관리자 데이터베이스는 단일 데이터베이스가 아닌 전체 시스템을 관리하는 다음 역할을 포함합니다. 이 역할에는 복제 집합 및 샤드 클러스터 관리 기능이 포함되지만 이에 국한되지 않습니다.
클러스터관리자
가장 큰 클러스터 관리 접근성을 제공합니다. 이 역할은 theclusterManager, clusterMonitor, hostManager 역할에서 부여된 권한을 결합한 것입니다. 또한, 이 역할은 thedropDatabase 동작을 제공합니다.
clusterManager
클러스터에 대한 관리 및 모니터링 작업을 제공합니다. 이 역할을 가진 사용자는 각각 샤딩과 복제에 사용되는 config 및 로컬 데이터베이스에 접근할 수 있습니다.
클러스터 전체에 대해 다음과 같은 동작을 제공합니다:
  • addShard
  • applicationMessage
  • 청소 고아
  • flushRouterConfig
  • 목록샤드
  • 삭제 샤드
  • replSetConfigure
  • replSetGetConfig
  • replSetGetStatus
  • replSetStateChange
  • 재동기화
클러스터 내 모든 데이터베이스에 대해 다음과 같은 동작을 제공합니다:
  • enableSharding
  • 무브청크
  • 스플릿청크
  • 스플릿벡터
설정 데이터베이스에서 설정 컬렉션에 대해 다음과 같은 동작을 제공합니다:
  • 삽입
  • 삭제
  • 업데이트
구성 데이터베이스에서는 모든 구성 컬렉션과 thesystem.indexes, system.js, system.namespaces 컬렉션에 대해 다음과 같은 동작을 제공합니다:
  • 콜스탯
  • db해시
  • dbStats
  • 찾기
  • 킬커서
로컬 데이터베이스에서 레플셋 컬렉션에 대한 다음 동작을 제공합니다:
  • 콜스탯
  • db해시
  • dbStats
  • 찾기
  • 킬커서
clusterMonitor
MongoDB Cloud Manager 및 Ops Manager 모니터링 에이전트와 같은 모니터링 도구에 읽기 전용 접근을 제공합니다.
클러스터 전체에 대해 다음과 같은 동작을 제공합니다:
  • connPoolStats
  • 커서정보(cursorInfo)
  • getCmdLineOpts
  • 로그를 받기
  • getParameter
  • getShardMap
  • 호스트정보
  • 개조
  • 목록 데이터베이스
  • 목록샤드
  • 넷스탯
  • replSetGetStatus
  • replSetGetConfig
  • 서버상태
  • 샤딩스테이트
  • 맨 위로
클러스터 내 모든 데이터베이스에 대해 다음과 같은 동작을 제공합니다:
  • 콜스탯
  • dbStats
  • getShardVersion
  • 인덱스 통계
클러스터 내 모든 system.profile 컬렉션에 대해 찾기 작업을 제공합니다.
구성 데이터베이스의 구성 컬렉션 및 system.indexes, system.js, system.namespaces 컬렉션에 대해 다음과 같은 작업을 제공합니다:
  • 콜스탯
  • db해시
  • dbStats
  • 찾기
  • 킬커서
호스트관리자
서버를 모니터링하고 관리할 수 있는 기능을 제공합니다.
클러스터 전체에 대해 다음과 같은 동작을 제공합니다:
  • applicationMessage
  • closeAllDatabases
  • connPoolSync
  • cpu프로파일러
  • diagLog깅
  • flushRouterConfig
  • fsync
  • invalidateUserCache
  • 킬롭
  • 로그로테이트
  • 재동기화
  • setParameter
  • 폐쇄
  • 접촉
  • 잠금 해제
클러스터 내 모든 데이터베이스에 대해 다음과 같은 동작을 제공합니다:
  • 킬커서
  • 수리데이터베이스

백업 및 복원 역할
관리자 데이터베이스에는 데이터 백업 및 복원을 위한 다음 역할들이 포함됩니다:
백업
데이터 백업에 필요한 최소한의 권한을 제공합니다. 이 역할은 MongoDB Cloud Manager 백업 에이전트, Ops Manager 백업 에이전트를 사용하거나, mongodump를 사용해 전체 mongod 인스턴스를 백업할 수 있는 충분한 권한을 제공합니다.
관리자 데이터베이스의 mms.backup 컬렉션과 설정 데이터베이스의 설정 컬렉션에 대한 삽입 및 업데이트 작업을 제공합니다.
클러스터 전체에 대해 listDatabases 동작을 제공합니다.
모든 데이터베이스에 대해 listCollections 작업을 제공합니다.
모든 컬렉션에 대해 listIndexes 동작을 제공합니다.
문서 검증이 있는 컬렉션에 대해 우회(bypassDocumentValidation) 작업을 제공합니다.
다음 항목에 대해 찾기 액션을 제공합니다:
  • 클러스터 내 모든 비시스템 컬렉션
  • 클러스터 내 모든 시스템 컬렉션: system.indexes, system.namespaces, 그리고 system.js
  • Admin.System.Users 및 Admin.System.Roles 컬렉션
  • config.settings 컬렉션
  • 2.6 이전 MongoDB 버전에서 수집된 레거시 system.users 컬렉션
버전 3.2.1에서 변경됨: 백업 역할은 데이터베이스 프로파일링을 실행할 때 존재하는 thesystem.profile 컬렉션을 백업할 추가 권한을 제공합니다. 이전에는 이 컬렉션에 대한 추가 읽기 권한이 필요했습니다.

복원
system.profilecollection 데이터가 포함되지 않은 백업 데이터를 복원하는 데 필요한 권한을 제공합니다. 이 역할만으로도 --oplogReplay 옵션 없이 mongorestore로 데이터를 복원할 때 충분합니다.
  • 백업 데이터에 system.profile collection 데이터가 포함되어 있고 대상 데이터베이스에 system.profile collection이 포함되어 있지 않으면, mongostored는 다음에도 컬렉션을 생성하려고 시도합니다. 이 프로그램은 실제로 system.profile 문서를 복원하지 않습니다. 따라서 사용자는 데이터베이스의 system.profile 컬렉션에서 createCollection 및 convertToCapped 작업을 수행하기 위해 추가 권한이 필요합니다.
    내장 역할인 dbAdmin과 dbAdminAnyDatabase가 추가 권한을 제공합니다.
  • mongorestore를 --oplogReplay로 실행할 경우, 복원 역할만으로는 oplog를 재생하기에 충분하지 않습니다. oplog를 재생하려면, anyResource에 anyAction을 부여하는 사용자 정의 역할을 생성하고, mongorestore를 --oplogReplay로 실행해야 하는 사용자에게만 부여하세요.

클러스터 내 모든 비시스템 컬렉션 및 system.js 컬렉션에 대해 다음과 같은 동작을 제공합니다; 관리자 데이터베이스 내 Admin.System.Users 및 Admin.System.Roles 컬렉션에 포함; 그리고 2.6 이전 MongoDB 버전의 레거시 system.users 컬렉션에서:
  • collMod
  • createCollection
  • createIndex
  • 드롭컬렉션
  • 삽입
모든 데이터베이스에 대해 listCollections 작업을 제공합니다.
admin.system.users 및 레거시 system.userscollections에 대해 다음과 같은 추가 작업을 제공합니다:
  • 찾기
  • 삭제
  • 업데이트
클러스터 내 모든 system.namespaces 컬렉션에 대해 find 작업을 제공합니다.
복원은 admin.system.userscollection의 문서를 일반적인 수정 작업으로 수정할 수 있지만, 사용자 관리에서만 이 데이터를 수정할 수 있습니다 방법.

올-데이터베이스 역할
관리자 데이터베이스는 Mongod 인스턴스 내 모든 데이터베이스에 적용되는 다음과 같은 역할을 제공하며, 이는 단일 데이터베이스 버전과 대략 동등합니다:
readAnyDatabase
읽기 권한과 동일한 읽기 전용 권한을 제공하지만, 클러스터 내 모든 데이터베이스에 적용됩니다. 이 역할은 클러스터 전체에 대한 listDatabases 동작도 제공합니다.
readWriteAnyDatabase
readWrite와 동일한 읽기 및 쓰기 권한을 제공하지만, 클러스터 내 모든 데이터베이스에 적용됩니다. 이 역할은 클러스터 전체에 대한 listDatabases 동작도 제공합니다.
userAdminAnyDatabase(사용자관리자 포함 데이터베이스)
userAdmin과 동일한 사용자 관리 운영 권한을 제공하지만, 클러스터 내 모든 데이터베이스에 적용됩니다. 이 역할은 클러스터 전체에 대해 다음과 같은 행동도 제공합니다:
  • authSchemaUpgrade
  • invalidateUserCache
  • 목록 데이터베이스
이 역할은 또한 관리자 데이터베이스의 admin.system.users 및 admin.system.roles 컬렉션과 레거시 system.userscollections 버전에서 다음과 같은 동작을 제공합니다. 2.6 이전의 MongoDB:
  • 콜스탯
  • db해시
  • dbStats
  • 찾기
  • 킬커서
  • planCacheRead
버전 2.6.4에서 변경됨: userAdminAnyDatabase가 theadmin.system.users와 admin.system.roles 컬렉션에 다음과 같은 권한을 추가했습니다:
  • createIndex
  • 드롭인덱스

userAdminAnyDatabase 역할은 사용자가 부여할 수 있는 권한을 제한하지 않습니다. 그 결과, userAdminAnyDatabase 사용자는 현재 권한보다 더 많은 권한을 스스로 부여할 수 있으며, 역할이 그렇지 않더라도 모든 권한을 스스로 부여할 수도 있습니다 사용자 관리 이상의 권한을 명시적으로 승인합니다. 이 역할은 사실상 MongoDB 시스템 슈퍼유저와 같습니다.
dbAdminAnyDatabase
dbAdmin과 동일한 데이터베이스 관리 작업 접근을 제공하지만, 클러스터 내 모든 데이터베이스에 적용됩니다. 이 역할은 클러스터 전체에 대한 listDatabases 동작도 제공합니다.

슈퍼유저 역할
여러 역할이 간접 또는 직접적인 시스템 전체 슈퍼사용자 접근을 제공합니다.
다음 역할들은 모든 사용자에게 데이터베이스에 대한 권한을 할당할 수 있는 기능을 제공하므로, 이 중 하나를 가진 사용자는 어떤 데이터베이스에서든 자신에게 권한을 할당할 수 있습니다:
  • dbOwner 역할, 관리자 데이터베이스에 스코프가 지정되었을 때
  • userAdmin 역할, 관리자 데이터베이스에 범위가 지정되었을 때
  • userAdminAnyDatabase 역할
다음 역할은 모든 자원에 대해 완전한 권한을 제공합니다:
뿌리
readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin 역할, 복원 통합 등의 작업 및 모든 자원에 대한 접근 권한을 제공합니다.
버전 3.0.7에서 변경됨: 루트가 시스템에 대한 실행 검증을 가집니다. 추심. 이전에는 root가 시스템에서 시작하는 컬렉션에 대한 접근을 포함하지 않았습니다. system.indexes와 system.namespaces 외의 접두사를 사용하세요.
루트 역할에는 복원 역할의 권한이 포함됩니다.


내부 역할__system
MongoDB는 복제본 집합 멤버나 mongos 인스턴스와 같은 클러스터 멤버를 나타내는 사용자 객체에 이 역할을 할당합니다. 이 역할은 보유자가 데이터베이스 내 어떤 객체에 대해서도 어떤 행동을 취할 수 있는 권한을 부여합니다.
이 역할은 애플리케이션을 나타내는 사용자 객체나 인간 관리자에게는 예외적인 경우가 아니면 할당하지 마십시오.
모든 리소스의 모든 액션에 접근해야 한다면, 예를 들어 applyOps 명령을 실행하려면 이 역할을 할당하지 마세요. 대신, anyResource에 anyAction을 부여하는 사용자 정의 역할을 만들고, 이 작업에 접근해야 하는 사용자만 이 권한을 가지도록 하세요.
원본: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles






이전의:C# 반사는 객체 속성의 디스플레이네임을 얻습니다
다음:MongoDb 로그인하려면 계정과 비밀번호를 생성하세요
 집주인| 게시됨 2016. 10. 9. 오후 5:33:26 |
MongoDb 로그인하려면 계정과 비밀번호를 생성하세요
http://www.itsvse.com/thread-3221-1-1.html
(출처: 코드 농업 네트워크)
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com