MongoDB 3.0+보안 권한 접근 제어 상세 설명

1.접근 제어 가 없 는 MongoDB 서비스 시작sudo service mongod start2.인 스 턴 스 에 연결mongo --port 27017Mongo 셸 을 배치 하 는 Mongodb 서버 에 연결 할 추가 명령 행 옵션 을 지정 합 니 다.예 를 들 어--host
3.만 든 사용자 관리자
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
4.MongoDB 인 스 턴 스 를 다시 시작 하고 접근 제어 사용
1.mongod 인 스 턴 스 를 다시 시작 합 니 다.설정 파일 의 설정 을 사용 하면 security.authorization:vi /etc/mongod.conf수정 내용:
    security:
      authorization: enabled
2.주의:keys and values 사이 에 빈 칸 을 추가 해 야 합 니 다.그렇지 않 으 면 해석 이 잘못 될 수 있 습 니 다.
    서비스 다시 시작:    sudo service mongod start5.사용자 관리자 인증
1.연결 mongo 셸 을 만 들 때 권한 을 부여 하고-u,-p및--authenticationDatabase를 지정 합 니 다.mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"2.mongo 셸 연결 시 인증 하지 않 고 db.auth()인증 을 사용 합 니 다.
    use admin
    db.auth("myUserAdmin", "abc123" )
서버 가 인증 을 시작 한 후 사용 자 를 어떻게 추가 합 니까?
1.MongoDB 인 스 턴 스 접근 제어 시작
mongod 인 스 턴 스 AUTH 명령 행 옵션 을 시작 합 니 다.설정 파일 의 설정 을 사용 하면 security.authorization.sudo service mongod start2.localhost exception 을 통 해 MongoDB 인 스 턴 스 연결
첫 번 째 사용 자 를 추가 하고 Localhost Exception 을 사용 하여 mongod 인 스 턴 스 를 연결 합 니 다.Mongo 셸 과 mongod 인 스 턴 스 를 실행 하려 면 같은 호스트 에서 와 야 합 니 다.
3.같은 위 에서 사용 자 를 만 드 는 방식 이 같 습 니 다.
일반 사용자 보안 접근 권한
1.MongoDB 시작service mongod start2、MongoDB 셸 다시 열기
1、mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
2、mongo
    use admin
    db.auth("myUserAdmin","abc123")
3.show collections:오류 보고
    사용자 my UserAdmin 은 사용자 의 관리 권한 만 사용 하기 때 문 입 니 다.
3.사용 자 를 만 들 고 사용 자 는 데이터 베 이 스 를 따라 갑 니 다.
my useradmin 을 위 한 사용자 my UserAdmin 을 admin 데이터베이스 에 만 듭 니 다.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
4.방금 만 든 사용자 보기show users5.전체 MongoDB 사용자 보기
use admin
db.system.users.find()
db.system.users.find().pretty()
6.생 성 완료,검증 진행
use test
db.auth('test1','test1')
1
show collections
ypmlist
수정 권한
1.updateuser()방법:
1.실례
db.updateUser(
"",
{
customData : { },
roles : [
{ role: "", db: "" } | "",
...
],
pwd: ""
},
writeConcern: { }
)
2.매개 변수 소개:  
    1.username:업데이트 할 사용자 이름 입 니 다.
    2.update:사용자 데이터 의 문 서 를 교체 합 니 다.이 데 이 터 는 사용자 의 해당 데 이 터 를 완전히 대체 합 니 다.
    3.writeConcern:선택 가능,쓰기 작업 단계.
3.업데이트 할 필드 와 그들의 새 값 을 지정 합 니 다:
    1.custom Data:선택 할 수 있 습 니 다.임의의 정보.
    2.roles:선택 가능.사용자 의 역할 을 부여 합 니 다.캐릭터 배열 에 대한 이전 배열 의 값 업데이트 덮어 쓰기
    3.pwd:선택 가능.사용자 암호
권한 조작 수정
실례:
use admin
switched to db admin
db.auth("myUserAdmin", "abc123" )
1
use test
db.updateUser(
"test1",
{
pwd: "itcast",
customData: { title: "Senior Manager" },
"roles" : [
{
"role" : "readWrite",
"db" : "test"
},
{
"role" : "readWrite",
"db" : "example"
}
   }
)
슈퍼 유저
use admin
db.createUser(
{
user: "itcast",
pwd: "itcast",
roles: [ { role: "root", db: "admin" } ]
}
)
2.시스템 기본 역할:
1.Read:사용자 가 지정 한 데이터 베 이 스 를 읽 을 수 있 도록 합 니 다.
2.readWrite:사용자 가 지정 한 데이터 베 이 스 를 읽 고 쓸 수 있 도록 합 니 다.
3.dbAdmin:사용자 가 지정 한 데이터베이스 에서 관리 함 수 를 실행 할 수 있 도록 합 니 다.예 를 들 어 색인 생 성,삭제,통계 보기 또는 system.profile 에 접근 할 수 있 습 니 다.
4.userAdmin:사용자 가 system.users 에 집합 하여 기록 할 수 있 도록 합 니 다.지정 한 데이터베이스 에서 사용 자 를 만 들 고 삭제 하 며 관리 할 수 있 습 니 다.
5.clusterAdmin:admin 데이터베이스 에서 만 사용 할 수 있 고 사용자 에 게 모든 조각 과 복사 집합 관련 함수 에 대한 관리 권한 을 부여 합 니 다.
6.readAny Database:admin 데이터베이스 에서 만 사용 할 수 있 고 사용자 에 게 모든 데이터 베 이 스 를 읽 을 수 있 는 권한 을 부여 합 니 다.
7.readWrite Any Database:admin 데이터베이스 에서 만 사용 할 수 있 고 사용자 에 게 모든 데이터 베 이 스 를 읽 고 쓸 수 있 는 권한 을 부여 합 니 다.
8.userAdminAnyDatabase:admin 데이터베이스 에서 만 사용 할 수 있 고 사용자 에 게 모든 데이터베이스 의 userAdmin 권한 을 부여 합 니 다.
9.dbAdminAnyDatabase:admin 데이터베이스 에서 만 사용 할 수 있 고 사용자 에 게 모든 데이터베이스 의 dbAdmin 권한 을 부여 합 니 다.
10.root:admin 데이터베이스 에서 만 사용 할 수 있 습 니 다.슈퍼 계 정,슈퍼 권한

좋은 웹페이지 즐겨찾기