Wow begitu banyak jawaban yang rumit / membingungkan di sini.
Ini pada v3.4 .
Jawaban singkat.
1) Mulai MongoDB tanpa kontrol akses.
mongod --dbpath /data/db
2) Hubungkan ke instance.
mongo
3) Buat pengguna.
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
4) Hentikan instance MongoDB dan mulai lagi dengan kontrol akses.
mongod --auth --dbpath /data/db
5) Hubungkan dan otentikasi sebagai pengguna.
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})
Jawaban panjang: Baca ini jika Anda ingin memahami dengan baik.
Sangat sederhana. Saya akan bodoh berikut ini https://docs.mongodb.com/manual/tutorial/enable-authentication/
Jika Anda ingin mempelajari lebih lanjut tentang apa peran sebenarnya baca lebih lanjut di sini: https://docs.mongodb.com/manual/reference/built-in-roles/
1) Mulai MongoDB tanpa kontrol akses.
mongod --dbpath /data/db
2) Hubungkan ke instance.
mongo
3) Buat administrator pengguna. Berikut ini membuat administrator pengguna dalam admin
database otentikasi. Pengguna adalah dbOwner
lebih dari some_db
database dan BUKAN atas admin
database, ini penting untuk diingat.
use admin
db.createUser(
{
user: "myDbOwner",
pwd: "abc123",
roles: [ { role: "dbOwner", db: "some_db" } ]
}
)
Atau jika Anda ingin membuat admin yang merupakan admin atas basis data apa pun:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
4) Hentikan instance MongoDB dan mulai lagi dengan kontrol akses.
mongod --auth --dbpath /data/db
5) Hubungkan dan otentikasi sebagai administrator pengguna menuju admin
database otentikasi, BUKAN ke some_db
database otentikasi. Administrator pengguna dibuat dalam admin
database otentikasi, pengguna tidak ada dalam some_db
database otentikasi.
use admin
db.auth("myDbOwner", "abc123")
Anda sekarang diautentikasi sebagai dbOwner
lebih dari some_db
database. Jadi sekarang jika Anda ingin membaca / menulis / melakukan hal-hal langsung ke some_db
basis data Anda dapat mengubahnya.
use some_db
//...do stuff like db.foo.insert({x:1})
// remember that the user administrator had dbOwner rights so the user may write/read, if you create a user with userAdmin they will not be able to read/write for example.
Lebih lanjut tentang peran: https://docs.mongodb.com/manual/reference/built-in-roles/
Jika Anda ingin membuat pengguna tambahan yang bukan administrator pengguna dan yang merupakan pengguna biasa lanjutkan membaca di bawah ini.
6) Buat pengguna normal. Pengguna ini akan dibuat dalam some_db
database otentikasi di bawah.
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
7) Keluar dari mongo shell, sambungkan kembali, otentikasi sebagai pengguna.
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})