MongoDB:サーバーに起動警告「データベースのアクセス制御が有効になっていません」があります


89

今日、最初にMongoDB3.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]

私のコンピューターはMicrosoftWindows [ 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
私はあなたが言ったようですが、ただ一つの問題は、この--authが毎回または一度だけ通過しなければならないということです。毎回、サーバーでこのsudoサービスMongoDBが起動するのが好きなので、サービスを提供する方法は?
suresh pareek 2017年

5
@sureshpareek毎回渡す必要がない場合は、mongodb.confファイルでこれを構成できます。詳細については、docs.mongodb.com
manual options basickarl

1
@sureshpareek問題ありません!それについてもっと知りたい場合は、ここをチェックしてください:stackoverflow.com/a/42929869/1137669もう少し詳しく説明します。
basickarl

最初のステップで失敗しました。バージョンv3.6.5でした。同じ警告が表示され、シャットダウンしました
wyx

7
真剣に人は...なぜあなたは有効に言わないsecurity.authorizationでをmongod.conf??????
ジョン

-5

古いdbフォルダーを削除して、新しいフォルダーを再作成する必要があります。それはあなたの問題を解決します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.