2014-12-17 2 views
1

mongodb 클러스터를 실행 중입니다. 나는 인증을 추가하려고합니다. mongo doc about builtin roles을 읽을 때 혼란 스럽습니다. 클러스터를 안전하게 관리하려면 몇 명의 사용자를 만들어야합니까? 어떤 종류의 사용자를 만들어야합니까?하나의 mongodb 클러스터에 대해 어떤 종류의 사용자를 만들어야합니까?

use admin 
db.addUser("clusteradmin", "123", ["clusterAdmin"]) 

# for backup 
use admin 
db.addUser("backupadmin", "123", ["backup", "restore"]) 

use admin 
db.addUser("allDBsadmin", "123", ["userAdminAnyDatabase","userAdminAnyDatabase", "readWriteAnyDatabase"]) 


############## for mydb ##################### 

use mydb 
db.addUser("user", "123", ["readWrite"]) 

누구든지 몇 가지 제안을 줄 수있는 다음

내 최초의 아이디어인가?

답변

0

사용자와 사용자의 권한을 만들거나 수정할 수있는 사용자 관리자와 클러스터를 관리하는 데있어 많은 작업을 수행 할 수있는 클러스터 관리자가 일반적으로 필요합니다. 그런 다음 관리 및 클라이언트 사용 관점에서 데이터베이스를 어떻게 사용할 것인지 생각해야합니다. 최소 권한의 원칙에 따라 유형을 적합하게 사용자를 작성합니다. 각 고유 한 유형에 대해 작업을 완료하는 데 필요한 특권을 정확하게 가진 한 명의 사용자를 작성하십시오. 예를 들어 데이터베이스를 백업해야하고 클라이언트가 사용하는 하나의 데이터베이스가있는 경우 백업 사용자와 데이터베이스에 대한 읽기/쓰기 권한이있는 응용 프로그램 사용자가 두 명 더 생성됩니다.

+0

db.addUser ("allDBsadmin", "123", "userAdminAnyDatabase", "userAdminAnyDatabase", "readWriteAnyDatabase"])는 mongodb 클러스터에서 모든 작업을 수행 할 수 있습니까? 또 다른 질문 : mongodb culster, replset, config 서버 및 mogos에는 모두 관리 데이터베이스가 있음을 발견했습니다. 그들은 다르다. 그 차이점은 무엇입니까? 인증을 할 때의 차이점은 무엇입니까? 감사합니다 – BAE

+1

[ "userAdminAnyDatabase", "userAdminAnyDatabase", "readWriteAnyDatabase"]를 사용하는 나의 사용자가 local.system.replset을 읽을 수없는 이유는 무엇입니까? – BAE