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

Cara membuat Pengguna &menambahkan Peran di MongoDB

MongoDB adalah database berorientasi dokumen lintas platform yang membuat penyimpanan dan pengambilan data menjadi cepat dan mudah. Basis data menggunakan struktur mirip JSON untuk dokumen, terutama yang akrab dengan aplikasi modern.

MongoDB menggunakan koleksi dan manuskrip di mana dokumen terdiri dari pasangan nilai kunci, unit dasar data di MongoDB. Sebaliknya, koleksi berisi fungsi dan dokumen yang setara dengan tabel database relasional.

Buat pengguna baru di MongoDB

Untuk menambahkan pengguna baru ke sistem, MongoDB menyediakan teknik internal yang dikenal sebagai db.createUser(). Berbeda dengan sistem Database tradisional, pengguna MongoDB terikat ke database lokal yang disebut Database Otentikasi. Dengan demikian, mereka tidak terikat secara global, seperti database SQL konvensional.

Selain itu, database otentikasi dan nama pengguna berfungsi sebagai pengidentifikasi unik. Oleh karena itu, jika dua pengguna dibuat dalam basis data yang berbeda tetapi memiliki nama yang sama, mereka diidentifikasi sebagai dua pengguna yang terpisah. Oleh karena itu, jika seseorang ingin membuat satu pengguna dengan izin pada beberapa basis data, ia harus mengizinkan satu pengguna untuk memiliki hak/peran ke basis data yang berlaku alih-alih membangun Pengguna berkali-kali di basis data yang berbeda.

Contoh:

db.createUser({       pengguna:"Foss",        pwd:"password",         role:[{role:"userAdminAnyDatabase" , db:"admin"}]})

Perintah pengelolaan pengguna

Nama Deskripsi
createUser Metode ini membuat pengguna baru.
dropAllUsersFromDatabase Menghapus semua pengguna dari database.
dropUser Memberikan tugas dan hak istimewanya kepada pengguna.
grantRolesToUser Peran dan hak istimewa terkait diberikan kepada pengguna.
revokeRolesFromUser Menghapus peran pengguna.
updateUser Metode ini digunakan untuk memperbarui data pengguna.
usersInfo Metode ini mengembalikan informasi tentang pengguna yang diberikan.

Menambahkan pengguna

Saat menambahkan pengguna ke DB tertentu, gunakan metode “db.createUser()”. Penting untuk dicatat bahwa menambahkan pengguna dengan opsi jauh lebih sederhana daripada memasukkan dokumen pengguna ke dalam database non-relasional.

Contoh:

use foss              // tentukan DBdb.createUser(  {    user:"fosslinux",    pwd:passwordPrompt(),  // atau cleartext password jika Anda menginginkan    peran:[       { role:"read", db:"foss" } ,       { role:"read", db:"articles" },       { role:"read", db:"tutorials" },      { role:"readWrite", db:"tutorialguides" }    ]  })

Setelah Anda menghubungkan instance MongoDB dalam contoh di atas, Anda dapat melampirkannya ke DB foss untuk menjalankan perintah db.createUser(). Basis data yang digunakan akan bertindak sebagai Basis Data Otentikasi Pengguna.

Sandi dan nama pengguna disediakan dalam dokumen yang berisi pemanggilan metode kami sebagai pasangan nilai kunci. Penggunaan peran mengontrol akses ke database. Seorang pengguna harus memiliki peran untuk mengakses basis data apa pun, bahkan Basis Data Otentikasinya sendiri. Juga, pengguna diberikan akses ke database lain dalam sistem menggunakan peran. Dengan demikian, hak istimewa pengguna tidak terbatas pada basis data otentikasi mereka. Oleh karena itu, ini memungkinkan pengguna untuk memiliki berbagai hak istimewa di banyak basis data sesuai kebutuhan. Prinsip hak istimewa terkecil memungkinkan pengguna untuk menjaga cakupan akses database sekecil mungkin.‍

Cara membuat pengguna administrator di MongoDB

Membuat pengguna admin di MongoDB dilakukan dengan menggunakan metode db.createUser(), yang memungkinkan Anda membuat pengguna. Namun, setelah membuat pengguna, Anda perlu menetapkan peran administrator. Peran ini memberikan hak istimewa administrator pengguna.

Buat pengguna untuk satu database di MongoDB

Jika kita ingin membuat user yang hanya bisa bekerja dengan satu database, kita bisa menggunakan perintah yang sama seperti di atas, tetapi kita harus menggunakan opsi “userAdmin” sekali saja.

Contoh:

db.createUser({        pengguna:"Fosslinux",        pwd:"password",        role:[{role:"userAdmin" , db:"Foss"}]})

Perincian kode:

  1. Pertama dan terpenting, seseorang harus menentukan "nama pengguna" dan "kata sandi" yang akan dibuat.
  2. Menetapkan peran untuk Pengguna tersebut, yang merupakan administrator database; ini ditetapkan ke peran "admin pengguna" karena peran tersebut memungkinkan pengguna untuk memiliki hak administratif hanya ke database yang ditentukan dalam DB
  3. Terakhir, parameter DB menyetel database tempat Pengguna harus memiliki hak administratif.

Mengelola pengguna

Untuk mengelola pengguna, seseorang perlu memahami peran yang perlu didefinisikan karena MongoDB memiliki seluruh daftar fungsi seperti peran baca dan peran baca-tulis. Perintah "baca peran" hanya mengizinkan akses baca-saja ke database. "Peran baca-tulis" menyediakan akses baca dan tulis ke database; ini berarti bahwa pengguna dapat mengeluarkan perintah pembaruan, penyisipan, dan penghapusan pada koleksi di basis data tersebut.

Contoh:

db.createUser ({user:"foss", pwd:"password", peran:[{role:"baca", db:"tutorial"}, {role:"readwrite", db:"guides"} }                        ]})

Contoh di atas menunjukkan bahwa pengguna yang dikenal sebagai Foss dibuat dan diberi beberapa peran dalam beberapa DB. Dalam model yang sama, Foss diberikan izin Read-Only pada database “Tutorial” dan izin Read-Write pada database “Guides”.

Menambahkan peran ke MongoDB

Peran memberi pengguna akses ke sumber daya MongoDB. Selain itu, MongoDB menyediakan beberapa peran bawaan yang memungkinkan administrator mengontrol akses ke sistem MongoDB. Namun, ketika peran ini tidak dapat menggambarkan kumpulan hak istimewa yang diinginkan, seseorang dapat membuat peran baru dalam database tertentu. Kecuali untuk fungsi yang dibuat di database admin, peran hanya dapat menyertakan hak yang berlaku untuk databasenya dan hak yang diwarisi dari peran lain.

Peran yang ditentukan dalam database admin mungkin berisi hak yang berlaku untuk database admin, database lain, atau sumber daya cluster, dan mungkin mewarisi peran dari database lain. Untuk membuat peran baru, gunakan “db.createRole()” dan tentukan larik hak dan larik peran yang diwarisi.

MongoDB mendefinisikan role secara unik dengan menggabungkan nama database dengan nama role. Setiap peran dicakup ke database yang Anda buat, tetapi MongoDB menyimpan semua informasi peran dalam koleksi adminSystemRoles di database admin. Misalnya, peran kreatif dan tindakan pemberian peran pada sumber daya database harus memastikan bahwa peran dibuat dan diberikan dalam database. grantRole menentukan hak istimewa untuk peran baru dan peran yang akan diwarisi. User AdminAnyDatabase dan peran bawaan admin pengguna menyediakan CreateRole dan memberikan tindakan peran pada sumber daya masing-masing.

Untuk membuat peran dengan batasan autentikasi yang ditentukan, seseorang harus menyetel tindakan AuthenticationRetrictions pada sumber daya database, yang kemudian fungsi tersebut dibuat.

Metode db.grantRole to User () mengambil argumen berikut;

Parameter Ketik Deskripsi
Pengguna String Memerlukan nama Pengguna yang akan diberikan peran.
Peran Array Memerlukan serangkaian peran tambahan untuk diberikan kepada Pengguna.
Tuliskan masalah Dokumen Ini opsional dan ditujukan untuk modifikasi perintah. Itu juga mengambil bidang yang sama dengan perintah get last error.

Parameter role dapat menentukan fungsi yang ditentukan pengguna dan built-in, yang dapat dicapai dengan memilih peran dengan namanya. Ini dilakukan dengan menghubungkan ke mongod (proses daemon utama untuk sistem MongoDB yang menangani permintaan data, melakukan operasi manajemen latar belakang, dan mengelola akses data). Atau, mongo (yang bertanggung jawab untuk membuat koneksi antara aplikasi klien dan sharded cluster ), dengan hak yang diberikan di bagian persyaratan. Misalnya, admin pengguna saya yang dibuat di kontrol akses yang diaktifkan dapat membuat peran di admin dan database lainnya.

Perintah manajemen peran

Nama\s Deskripsi
createRole Membuat peran dan mengatakan apa yang dapat dilakukannya.
dropRole Menghapus peran yang disetel oleh pengguna.
dropAllRolesFromDatabase Menghapus semua peran yang disiapkan pengguna dari database.
hibahPrivilegesToRole menetapkan hak istimewa untuk peran yang dipilih pengguna.
grantRolesToRole memberi tahu peran dari peran yang ditentukan pengguna yang dapat mewarisi hak istimewa.
invalidateUserCache Bila Anda menggunakan invalidateUserCache, cache informasi pengguna dalam memori, seperti kredensial dan peran, akan dihapus.
revokePrivilegesFromRole menghapus hak istimewa dari peran yang ditentukan pengguna yang memilikinya.
revokeRolesFromRole menghapus peran yang diwarisi dari peran yang ditentukan pengguna yang tidak Anda inginkan.
rolesInfo mengembalikan informasi tentang peran atau peran yang Anda inginkan.
updateRole Memperbarui peran yang disiapkan oleh pengguna.

Kesimpulan

Basis data MongoDB, yang memungkinkan penyimpanan dan pengambilan data menjadi mudah dan cepat, dapat memungkinkan seseorang untuk membuat pengguna menggunakan perintah “db.createUser()”. Di sisi lain, perintah "AdminAnyDatabase" memberi pengguna semua hak istimewa untuk mengakses DB di bawah peran admin. Artikel ini telah bekerja lebih keras dan mengilustrasikan cara memberikan peran dan hak. Kami harap Anda merasa terbantu. Jika ya, jangan lupa tinggalkan komentar di kolom komentar di bawah.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB, Mongoose:Bagaimana menemukan subdokumen dalam dokumen yang ditemukan?

  2. Cari di beberapa koleksi di MongoDB

  3. Spring Data MongoDB dengan Java 8 LocalDate MappingException

  4. Mongodb Jelaskan untuk kerangka Agregasi

  5. Data pegas MongoDb:MappingMongoConverter menghapus _class