MongoDB: Server memiliki peringatan startup '' Kontrol akses tidak diaktifkan untuk database ''

91

Saya pertama kali menginstal MongoDB 3.4.1 hari ini. Tetapi ketika saya memulainya dan menggunakan shell MongoDB, itu memberi saya peringatan di bawah ini:

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]

komputer saya adalah Microsoft Windows [ version 10.0.14393].

alewu
sumber
2
Kemungkinan duplikat MongoDB: Server memiliki peringatan startup
Joseph Ferris
6
Ini hampir merupakan duplikat sempurna dari pertanyaan lain. Apakah Anda pernah menanyakan ini tahun lalu dengan nama pengguna yang berbeda? Satu-satunya hal yang berbeda adalah nama pengguna dan versi Windows. Lihat: stackoverflow.com/questions/36660117/…
Joseph Ferris
@JosephFerris, Ya, ini adalah duplikasi untuk stackoverflow.com/questions/36660117/… dan pertanyaan itu telah ditutup karena duplikasi ini.
Lakmal Vithanage

Jawaban:

138

Mongodb v3.4

Anda perlu melakukan hal berikut untuk membuat database yang aman:

Pastikan pengguna yang memulai proses memiliki izin dan direktori tersebut ada ( /data/dbdalam kasus ini).

1) Mulai MongoDB tanpa kontrol akses.

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

2) Hubungkan ke instance.

mongo --port 27017

3) Buat administrator pengguna (dalam database otentikasi admin) .

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

4) Mulai ulang instance MongoDB dengan kontrol akses.

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

5) Hubungkan dan otentikasi sebagai administrator pengguna.

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

6) Buat pengguna tambahan yang diperlukan untuk penerapan Anda (misalnya dalam database otentikasi pengujian) .

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

7) Hubungkan dan autentikasi sebagai myTester.

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

Saya pada dasarnya hanya menjelaskan versi singkat dari dokumen resmi di sini: https://docs.mongodb.com/master/tutorial/enable-authentication/

basickarl.dll
sumber
1
Saya memang seperti yang Anda katakan tetapi hanya satu masalah adalah bahwa ini --auth harus berlalu setiap saat atau untuk satu waktu. jika setiap saat lalu bagaimana memberi dengan layanan karena di server saya ingin seperti ini sudo layanan MongoDB mulai?
suresh pareek
6
@sureshpareek Anda dapat mengkonfigurasi ini di file mongodb.conf jika Anda tidak ingin meneruskannya setiap saat, info selengkapnya di sini: docs.mongodb.com/manual/reference/configuration-options/…
basickarl
1
@sureshpareek Tidak masalah kawan! Periksa di sini jika Anda ingin tahu lebih banyak tentangnya: stackoverflow.com/a/42929869/1137669 Saya jelaskan lebih detail.
basickarl
Saya gagal pada langkah pertama. Saya adalah versi v3.6.5. Peringatan yang sama dan dimatikan
wyx
8
Serius guys ... Mengapa Anda tidak mengatakan untuk mengaktifkan security.authorizationdi mongod.conf??????
Yohanes
-6

Anda perlu menghapus folder db lama Anda dan membuat yang baru. Ini akan menyelesaikan masalah Anda.

Parag
sumber