Saya ingin mengatur otentikasi nama pengguna & kata sandi untuk instance MongoDB saya, sehingga setiap akses jarak jauh akan menanyakan nama pengguna & kata sandi. Saya mencoba tutorial dari situs MongoDB dan melakukan yang berikut:
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
Setelah itu, saya keluar dan berlari mongo lagi. Dan saya tidak perlu kata sandi untuk mengaksesnya. Bahkan jika saya terhubung ke database dari jarak jauh, saya tidak diminta untuk nama pengguna & kata sandi.
UPDATE Inilah solusi yang akhirnya saya gunakan
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
Nama pengguna & kata sandi akan bekerja dengan cara yang sama untuk mongodump
dan mongoexport
.
authentication
mongodb
murvinlai
sumber
sumber
Jawaban:
Anda harus mulai
mongod
dengan--auth
opsi setelah mengatur pengguna.Dari Situs MongoDB:
Otentikasi MongoDB
sumber
admin
db, gunakan db lain dan coba lagi. Hanya userAdmin (AnyDatabase) yang dapat terhubungadmin
.Wow begitu banyak jawaban yang rumit / membingungkan di sini.
Ini pada v3.4 .
Jawaban singkat.
1) Mulai MongoDB tanpa kontrol akses.
2) Hubungkan ke instance.
3) Buat pengguna.
4) Hentikan instance MongoDB dan mulai lagi dengan kontrol akses.
5) Hubungkan dan otentikasi sebagai pengguna.
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.
2) Hubungkan ke instance.
3) Buat administrator pengguna. Berikut ini membuat administrator pengguna dalam
admin
database otentikasi. Pengguna adalahdbOwner
lebih darisome_db
database dan BUKAN atasadmin
database, ini penting untuk diingat.Atau jika Anda ingin membuat admin yang merupakan admin atas basis data apa pun:
4) Hentikan instance MongoDB dan mulai lagi dengan kontrol akses.
5) Hubungkan dan otentikasi sebagai administrator pengguna menuju
admin
database otentikasi, BUKAN kesome_db
database otentikasi. Administrator pengguna dibuat dalamadmin
database otentikasi, pengguna tidak ada dalamsome_db
database otentikasi.Anda sekarang diautentikasi sebagai
dbOwner
lebih darisome_db
database. Jadi sekarang jika Anda ingin membaca / menulis / melakukan hal-hal langsung kesome_db
basis data Anda dapat mengubahnya.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.7) Keluar dari mongo shell, sambungkan kembali, otentikasi sebagai pengguna.
sumber
Pertama,
#auth=true
batalkan komentar pada baris yang dimulai dengan file konfigurasi mongod Anda (jalur default/etc/mongo.conf
). Ini akan mengaktifkan otentikasi untuk mongodb.Kemudian, restart mongodb:
sudo service mongod restart
sumber
/etc/mongod.conf
tidak/etc/mongo.conf
Jawaban ini untuk referensi Mongo 3.2.1
Terminal 1:
Terminal 2:
jika Anda ingin menambahkan tanpa peran (opsional):
untuk memeriksa apakah dikonfirmasi atau tidak:
itu akan memberi Anda:
lain :
sumber
use admin
sebelumnyacreateUser
jika tidak memberikan kesalahan.Berikut ini adalah kode javascript untuk menambahkan pengguna.
Mulai
mongod
dengan--auth = true
Akses database admin dari mongo shell dan berikan file javascript.
admin mongo "Nama file.js"
"Nama file.js"
Sekarang penambahan pengguna selesai, kami dapat memverifikasi mengakses database dari mongo shell
sumber
https://docs.mongodb.com/manual/reference/configuration-options/#security.authorization
Edit file pengaturan mongo;
Tambahkan baris:
Mulai ulang layanan
Salam
sumber
Pertama jalankan mongoDB pada terminal menggunakan
sekarang jalankan mongo shell gunakan perintah berikut
Mulai ulang instance MongoDB dengan kontrol akses.
Sekarang otentikasi diri Anda dari baris perintah menggunakan
Saya membacanya dari
https://docs.mongodb.com/manual/tutorial/enable-authentication/
sumber
MongoDB Enterprise > db.system.users.find() { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SC RAM-SHA-1" : { "iterationCount" : 10000, "salt" : "k96PCEflidMY5seVju+gAw==", "s toredKey" : "CabQTnJtny7cv0wT5X8oX9QOn3A=", "serverKey" : "RJyCdnlIhyIfj2+d44L61 bYK+MU=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdmin", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "root", "db" : "admin" } ] }
otentikasi masih gagalroot
peran untuk menyediakan akses ke operasi dan semua sumber daya dari peran berikut digabungkan ... peran rootInilah yang saya lakukan di Ubuntu 18.04:
sumber
Anda bisa berubah
/etc/mongod.conf
.Sebelum
#security:
Setelah
Kemudian
sudo service mongod restart
sumber
Ikuti langkah-langkah di bawah ini secara berurutan
mongod --auth
dalam kasus linux Anda dapat mengedit/etc/mongod.conf
file untuk menambahkansecurity.authorization : enabled
dan kemudian restart layanan mongdmongo -u "admin" -p "admin123" --authenticationDatabase "admin"
. Itu diaAnda dapat memeriksa pos ini untuk melihat lebih detail dan mempelajari cara menghubungkannya menggunakan luwak.
sumber
Pembuatan pengguna dengan kata sandi untuk basis data tertentu untuk mengamankan akses basis data:
sumber
Anda harus beralih ke database yang Anda inginkan pengguna (bukan admin db) ...
use mydatabase
Lihat posting ini untuk bantuan lebih lanjut ... https://web.archive.org/web/20140316031938/http://learnmongo.com/posts/quick-tip-mongodb-users/
sumber
Langkah-langkah ini berhasil pada saya:
sumber
Praktik terbaik untuk terhubung ke mongoDB sebagai berikut:
Setelah instalasi awal,
use admin
Kemudian jalankan skrip berikut untuk membuat pengguna admin
db.createUser( { user: "YourUserName", pwd: "YourPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "clusterAdmin", db: "admin" } ] })
skrip berikut akan membuat pengguna admin untuk DB.
masuk ke db.admin menggunakan
mongo -u YourUserName -p YourPassword admin
Setelah masuk, Anda dapat membuat nomor N database dengan kredensial admin yang sama atau berbeda dengan mengulangi angka 1 hingga 3.
Ini memungkinkan Anda membuat pengguna dan kata sandi berbeda untuk koleksi berbeda yang Anda buat di MongoDB
sumber
setelah Anda membuat pengguna baru, jangan lupa untuk
grant
read/write/root
mengizinkannya. Anda dapat mencobacmd: db.grantRolesToUser('yourNewUsername',[{ role: "root", db: "admin" }])
sumber