MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Memulai dengan Manajemen Pengguna MongoDB

Salah satu tugas pertama setelah server database MongoDB Anda aktif dan berjalan adalah untuk mengonfigurasi pengguna dan database Anda. Dalam posting ini, kita akan membahas beberapa skenario umum untuk membuat dan mengonfigurasi pengguna di MongoDB. Pengelolaan pengguna MongoDB telah meningkat sangat signifikan dibandingkan dua rilis sebelumnya dan sekarang menjadi model pengelolaan pengguna yang mumpuni dan fungsional. Pengguna dapat diberikan berbagai peran, dan peran dapat dikonfigurasi dengan hak istimewa yang diinginkan. Ada beberapa peran pengguna bawaan untuk digunakan, atau Anda dapat membuat peran khusus Anda sendiri.

Contoh dalam posting ini menggunakan klien 2.6.4 dan server 2.6.4. Perubahan besar telah dilakukan pada model manajemen pengguna dari 2,4 menjadi 2,6. Jadi, jika Anda menggunakan klien 2.4, banyak contoh di posting ini tidak akan berfungsi untuk Anda. Anda dapat memeriksa versi klien yoMongoDBodb menggunakan sintaks berikut:

mongo --version

Menambahkan Pengguna ke Database

Langkah pertama setelah membuat pengguna Anda adalah membuat database aplikasi Anda:

gunakan applicationdb;

Setelah membuat database ini, kami ingin membuat pengguna yang akan digunakan oleh aplikasi untuk menulis ke database ini. Kami ingin pengguna ini memiliki hak baca dan tulis ke database:

db.createUser({'user':'appuser', 'pwd':'', peran:['readWrite']});

Terkadang, kami juga ingin menambahkan pengguna yang memiliki akses hanya baca ke database. Misalnya, kami mungkin ingin menambahkan pengguna analytics yang hanya memiliki akses baca saja ke database:

db.createUser({'user':'analyticsuser', 'pwd':'', peran:['read']});

Sekarang pengguna telah dibuat, mari kita coba terhubung sebagai pengguna ini dari konsol MongoDB:

mongo -u 'appuser' -p /applicationdbMongoDB versi shell:2.6.4menghubungkan ke:/applicationdb>

Anda seharusnya berhasil terhubung! Perhatikan "/applicationdb" di akhir sintaks yang memberitahu MongoDB untuk mengautentikasi 'appuser' pada database 'applicationdb'.

Menambahkan Pengguna ke Beberapa Database

Dalam banyak skenario, kita perlu membuat beberapa database di server. Misalnya, dalam skenario ini, kita mungkin perlu membuat database lain 'analyticsdb' untuk menyimpan hasil analitik. Pengguna 'analytics' sekarang memerlukan akses 'hanya baca' di izin 'applicationdb' dan 'readWrite' di 'analyticsdb'.

Jadi, bagaimana kita mencapai ini? Haruskah kita menambahkan 'pengguna analitis' ke setiap database? Ini menciptakan mimpi buruk manajemen dalam jangka panjang karena banyak pengguna dan basis data ditambahkan. Untungnya, ada solusi sederhana. Kami dapat memusatkan tugas peran untuk pengguna dan menyimpannya dalam satu database. Dalam skenario ini, saya lebih suka menyimpan tugas ini di database 'admin' karena ini adalah pusat administrasi pusat di server, tetapi Anda juga dapat menyimpannya di database terpisah:

gunakan admindb.createUser({user:'analyticsuser', pwd:'', role:[{'role':'read', 'db':'applicationdb'}, { 'role':' readWrite', 'db':'analyticsdb'}]});

Setelah ditambahkan, Anda dapat menggunakan 'tampilkan pengguna' untuk menampilkan detail pengguna Anda. Berikut tampilan database admin saya:

gunakan admin> tampilkan pengguna{"_id" :"admin.admin","user" :"admin","db" :"admin","roles" :[{ "role" :"root"," db" :"admin"},{"role" :"restore","db" :"admin"}]}{"_id" :"admin.analyticsuser","user" :"analyticsuser","db" :"admin","role" :[{"role" :"read","db" :"applicationdb"},{"role" :"readWrite","db" :'analyticsdb"}]}>

Sekarang pengguna kita telah ditambahkan, mari kita coba sambungkan dari konsol untuk memverifikasi autentikasi dengan menggunakan sintaks yang kita gunakan di atas:

mongo -u 'analyticsuser' -p  /applicationdb

Namun, otentikasi gagal:

2014-10-06T23:11:42.616+0000 Kesalahan:18 { ok:0.0, errmsg:"auth failed", code:18 } at src/mongo/shell/db.js:1210exception:login failed 

Alasannya adalah karena 'analyticsuser' ditentukan di database 'admin' dan bukan di 'applicationdb'. Cara untuk menentukan ini adalah dengan menggunakan parameter ‘–authenticationDatabase’.

mongo -u 'analyticsuser' -p  /applicationdb --authenticationDatabase 'admin'

Kali ini, login berhasil:

Versi shell MongoDB:2.6.4menghubungkan ke:/applicationdb

Untuk lebih memahami berbagai peran bawaan lain yang tersedia di MongoDB, Anda dapat merujuk ke dokumentasi MongoDB tentang peran bawaan. Seperti biasa, jika Anda memiliki pertanyaan lebih lanjut, Anda dapat menghubungi kami di [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor:mengunggah file dari klien ke koleksi Mongo vs sistem file vs GridFS

  2. MongoDB:Hanya mengambil dokumen yang dibuat dalam 24 jam terakhir?

  3. MongoDB:ERROR:proses anak gagal, keluar dengan nomor kesalahan 14

  4. Kelompokkan menurut jumlah mongodb

  5. Apa itu Kursor di MongoDB?