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:
- Pertama dan terpenting, seseorang harus menentukan "nama pengguna" dan "kata sandi" yang akan dibuat.
- 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
- 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:
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.