MongoDB : 서버에 시작 경고 ''데이터베이스에 대한 액세스 제어가 활성화되지 않음 ''


89

오늘 처음으로 MongoDB 3.4.1을 설치했습니다. 그러나 시작하고 MongoDB 셸을 사용하면 다음과 같은 경고가 표시됩니다.

C:\Users\hs>"C:\Program Files\MongoDB\Server\3.4\bin\mongo.exe
MongoDB shell version v3.4.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.1
Server has startup warnings:
2017-01-12T21:19:46.941+0800 I CONTROL  [initandlisten]
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten]

내 컴퓨터는 Microsoft Windows [ version 10.0.14393]입니다.



6
이것은 다른 질문의 거의 완벽한 중복입니다. 작년에 다른 사용자 이름으로 이미 요청한 적이 있습니까? 유일한 차이점은 사용자 이름과 Windows 버전입니다. 참조 : stackoverflow.com/questions/36660117/...
조셉 페리스

@JosephFerris, 예, 이것은 stackoverflow.com/questions/36660117/…의 중복이며이 중복으로 인해 해당 질문이 종료되었습니다.
Lakmal Vithanage

답변:


137

Mongodb v3.4

보안 데이터베이스를 생성하려면 다음을 수행해야합니다.

프로세스를 시작하는 사용자에게 권한이 있고 디렉토리가 존재하는지 확인하십시오 ( /data/db이 경우).

1) 액세스 제어없이 MongoDB를 시작합니다.

mongod --port 27017 --dbpath /data/db

2) 인스턴스에 연결합니다.

mongo --port 27017

3) 사용자 관리자를 만듭니다 (관리자 인증 데이터베이스에서) .

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

4) 액세스 제어를 사용하여 MongoDB 인스턴스를 다시 시작합니다.

mongod --auth --port 27017 --dbpath /data/db

5) 사용자 관리자로 연결하고 인증합니다.

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

6) 배포에 필요한 추가 사용자를 생성합니다 (예 : 테스트 인증 데이터베이스) .

use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

7) myTester로 연결하고 인증합니다.

mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"

기본적으로 공식 문서의 짧은 버전을 여기에서 설명했습니다 : https://docs.mongodb.com/master/tutorial/enable-authentication/


1
나는 당신이 말한 것을 좋아하지만 한 가지 문제는이 인증이 매번 또는 한 번 통과해야한다는 것입니다. 매번 서버 에서이 sudo 서비스 MongoDB 시작을 좋아하기 때문에 서비스를 제공하는 방법은 무엇입니까?
수레 쉬 pareek

5
여기, 당신이 매번 그것을 통과하지 않으려면 당신은 mongodb.conf 파일이 구성 할 수 있습니다 더 많은 정보를 @sureshpareek : docs.mongodb.com/manual/reference/configuration-options/...
basickarl

1
트윗 담아 가기 그것에 대해 더 알고 싶다면 여기를 확인하십시오 : stackoverflow.com/a/42929869/1137669 조금 더 자세히 설명합니다.
basickarl

첫 번째 단계에서 실패했습니다. 버전
v3.6.5였습니다

7
진심으로 사람은 ... 왜 수 있도록 말을하지 않습니다 security.authorization에를 mongod.conf??????
John

-5

이전 db 폴더를 삭제하고 새로 만들어야합니다. 문제가 해결됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.