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

오늘 처음으로 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]입니다.



답변

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/


답변

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


답변