Saya mencoba membuat pengguna sederhana dengan izin hak untuk mengakses ke basis data apa pun dan dapat melakukan tindakan apa pun. Ketika saya mencoba menjalankan createUser
perintah, saya mendapatkan kesalahan ini:
db.createUser({ user: "mongoadmin" , pwd: "mongoadmin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
2015-08-20T17:09:42.300+0000 E QUERY Error: couldn't add user: No role named userAdminAnyDatabase@new_vehicles_catalog
Masalah di atas hanya terjadi ketika saya mengaktifkan konfigurasi auth dan saya membutuhkannya.
Jadi, Bagaimana cara membuat pengguna dengan izin admin untuk basis data apa pun. Saya menginginkannya karena saya mengkonfigurasi layanan mongo saya untuk menggunakan koneksi otentikasi. Jika saya ingin menjalankan dump data saya, saya harus menggunakan parameter otentikasi ini.
Tolong ada bantuan?
Menggunakan mongo versi 3.0.5 .
layanan ini di Amazon Linux AMI 2015.03 (HVM), Tipe Volume SSD - ami-1ecae776
sumber
Sesuai
MongoDB BOL
Aktifkan Auth Dengan kontrol akses diaktifkan, pastikan Anda memiliki pengguna dengan userAdmin atau userAdminAnyDatabase peran dalam database admin. Pengguna ini dapat mengatur pengguna dan peran seperti: membuat pengguna, memberikan atau mencabut peran dari pengguna, dan membuat atau memodifikasi peran pabean.Anda dapat membuat pengguna baik sebelum atau setelah mengaktifkan kontrol akses. Jika Anda mengaktifkan kontrol akses sebelum membuat pengguna apa pun, MongoDB menyediakan pengecualian hosting lokal yang memungkinkan Anda membuat administrator pengguna di basis data admin. Setelah dibuat, Anda harus mengotentikasi sebagai administrator pengguna untuk membuat pengguna tambahan sesuai kebutuhan.
Prosedur
Berikut adalah prosedur berikut yang dapat Anda gunakan
Enable Auth
. Pertama menambahkan administrator pengguna ke instance MongoDB yang berjalan tanpa kontrol akses dan kemudian mengaktifkan kontrol akses.Hubungkan ke instance
Misalnya, hubungkan
mongo
shell ke instance.Tentukan opsi baris perintah tambahan yang sesuai untuk menghubungkan
mongo
shell ke penyebaran Anda, seperti--host
.Buat administrator pengguna
Misalnya di sini di database admin, tambahkan pengguna dengan
userAdminAnyDatabase
peran. Misalnya, berikut ini membuat penggunamyUserAdmin
di database admin :Putuskan sambungan
mongo
shell.Mulai ulang instance MongoDB dengan kontrol akses
mongod
Mulai ulang instance dengan opsi baris perintah --auth atau, jika menggunakan file konfigurasi, pengaturan security.authorization .Klien yang terhubung ke instance ini sekarang harus mengautentikasi diri mereka sebagai
MongoDB
pengguna. Klien hanya dapat melakukan tindakan yang ditentukan oleh peran yang ditugaskan kepada mereka.Sambungkan dan otentikasi sebagai administrator pengguna
Dengan menggunakan
mongo
shell, Anda dapat:Terhubung dengan otentikasi dengan mengirimkan kredensial pengguna, atau
Hubungkan dulu otentikasi mulut , dan kemudian keluarkan metode db.auth () untuk mengotentikasi.
Untuk mengotentikasi selama koneksi Mulai
mongo
shell dengan-u <username>, -p <password>, and the --authenticationDatabase <database>
opsi baris perintah:Untuk mengautentikasi setelah tersambung
Hubungkan
mongo
shell kemongod
:Beralih ke database otentikasi (dalam hal ini, admin), dan gunakan metode db.auth (,) untuk mengotentikasi:
sumber