Saya menggunakan string koneksi yang sama di lokal dan produksi. Ketika string koneksi adalahmongodb://localhost/mydb
Apa username dan passwordnya? Apakah aman untuk tetap seperti ini?
Secara default mongodb tidak memiliki kontrol akses yang diaktifkan, jadi tidak ada pengguna atau kata sandi default.
Untuk mengaktifkan kontrol akses, gunakan opsi baris perintah --auth
atau pengaturan file konfigurasi security.authorization.
Anda dapat menggunakan prosedur berikut atau merujuk ke Mengaktifkan Auth di dokumen MongoDB.
Mulai MongoDB tanpa kontrol akses.
mongod --port 27017 --dbpath /data/db1
Hubungkan ke instance.
mongo --port 27017
Buat administrator pengguna.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Mulai ulang instance MongoDB dengan kontrol akses.
mongod --auth --port 27017 --dbpath /data/db1
Otentikasi sebagai administrator pengguna.
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
Selain apa yang telah disebutkan @Camilo Silva, jika Anda ingin memberikan akses gratis untuk membuat database, membaca, menulis database, dll, tetapi Anda tidak ingin membuat peran root, Anda dapat mengubah langkah ke-3 dengan cara berikut:
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ] } )
sumber
Untuk MongoDB yang lebih lama dari 2.6, perintah untuk menambahkan pengguna root adalah
addUser
(misalnya)db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
sumber
db.addUser
. Memulai 2.6 dan di versi 3.4.x saat ini Anda dapat membuat pengguna dengandb.CreateUser
.db.createUser
;) ( docs.mongodb.com/manual/reference/method/db.createUser )Selain jawaban yang diberikan sebelumnya, satu opsi adalah mengikuti pendekatan 'pengecualian localhost' untuk membuat pengguna pertama jika db Anda sudah dimulai dengan kontrol akses (
--auth
sakelar). Untuk melakukan itu, Anda harus memiliki akses localhost ke server dan kemudian menjalankan:mongo use admin db.createUser( { user: "user_name", pwd: "user_pass", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" } ] })
Seperti yang dinyatakan dalam dokumentasi MongoDB:
Ini adalah tautan ke bagian dokumen itu.
sumber