Cara Membuat Pengguna & menambahkan Peran MongoDB
โก Ringkasan Cerdas
Membuat pengguna dan menambahkan peran di MongoDB Mengandalkan metode db.createUser() untuk mendefinisikan kredensial, menetapkan peran bawaan, dan membatasi hak akses ke basis data tertentu, memperkuat kontrol akses di seluruh akun administratif dan akun basis data tunggal.
Apa itu Peran Bawaan (Built-in Roles) di MongoDB?
Sebelum membuat akun, ada baiknya memahami peran bawaan yang tersedia. MongoDB Memberikan. Sebuah peran adalah kumpulan hak istimewa yang diberi nama, dan setiap hak istimewa memasangkan sumber daya (basis data atau koleksi) dengan tindakan yang diizinkan padanya. Oleh karena itu, menetapkan peran selama pembuatan pengguna menentukan dengan tepat apa yang dapat dilakukan akun tersebut.
MongoDB mengelompokkan peran bawaannya ke dalam peran pengguna basis data, peran administrasi basis data, peran administrasi klaster, peran pencadangan dan pemulihan, serta peran superuser. Tabel di bawah ini merangkum peran yang paling sering digunakan saat mengelola pengguna:
| Peran | Kategori | Hak Istimewa yang Diberikan |
|---|---|---|
| Baca baca | Pengguna Basis Data | Akses baca saja ke semua koleksi non-sistem dalam sebuah basis data. |
| bacaTulis | Pengguna Basis Data | Akses baca serta sisipkan, perbarui, dan hapus pada koleksi. |
| dbAdmin | Administrator Basis Data | Manajemen skema, pengindeksan, dan statistik untuk basis data. |
| penggunaAdmin | Administrator Basis Data | Membuat dan memodifikasi pengguna dan peran pada satu basis data. |
| userAdminAnyDatabase | superuser | Administrasi pengguna di seluruh basis data dalam instance tersebut. |
| akar | superuser | Akses penuh ke semua sumber daya dan operasional. |
MongoDB Buat Pengguna Administrator
Membuat administrator pengguna di MongoDB dilakukan dengan menggunakan metode createUser. Contoh berikut menunjukkan cara melakukannya.
db.createUser(
{ user: "Guru99",
pwd: "password",
roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Code Penjelasan:
- Langkah pertama adalah menentukan โusernameโ dan โpasswordโ yang perlu dibuat.
- Langkah kedua adalah menetapkan peran untuk pengguna. Karena peran tersebut harus sebagai administrator basis data, maka kita telah menetapkan peran โuserAdminAnyDatabaseโ. Peran ini memungkinkan pengguna untuk memiliki hak akses administratif ke semua basis data di MongoDB.
- Parameter db menentukan basis data admin, yang merupakan basis data Meta khusus di dalam MongoDB yang menyimpan informasi untuk pengguna ini.
Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:
Keluaran:
Outputnya menunjukkan bahwa seorang pengguna bernama โGuru"99" dibuat dan pengguna tersebut memiliki hak akses ke semua basis data di MongoDB.
MongoDB Buat Pengguna untuk Database Tunggal
Untuk membuat pengguna yang akan mengelola satu basis data, kita dapat menggunakan perintah yang sama seperti yang disebutkan di atas, tetapi kita hanya perlu menggunakan opsi โuserAdminโ.
Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan:
db.createUser(
{
user: "Employeeadmin",
pwd: "password",
roles:[{role: "userAdmin" , db:"Employee"}]})
Code Penjelasan:
- Langkah pertama adalah menentukan โusernameโ dan โpasswordโ yang perlu dibuat.
- Langkah kedua adalah menetapkan peran untuk pengguna, yang dalam hal ini, karena harus menjadi administrator basis data, ditetapkan ke peran "userAdmin". Peran ini memungkinkan pengguna untuk memiliki hak akses administratif hanya pada basis data yang ditentukan dalam opsi db.
- Parameter db menentukan database dimana pengguna harus memiliki hak administratif.
Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:
Keluaran:
Outputnya menunjukkan bahwa pengguna bernama โEmployeeadminโ telah dibuat dan pengguna tersebut hanya memiliki hak istimewa di database โEmployeeโ.
Mengelola pengguna
Pertama, pahami peran-peran yang perlu Anda definisikan. Ada banyak sekali peran yang tersedia di MongoDBSebagai contoh, terdapat peran "read", yang hanya mengizinkan akses baca saja ke basis data, dan kemudian ada peran "readWrite", yang menyediakan akses baca dan tulis ke basis data. Ini berarti pengguna dapat mengeluarkan perintah insert, delete, dan update pada koleksi di basis data tersebut.
db.createUser(
{
user: "Mohan",
pwd: "password",
roles:[
{ role: "read" , db:"Marketing" },
{ role: "readWrite" , db:"Sales" }
]
})
Cuplikan kode di atas menunjukkan bahwa pengguna bernama Mohan dibuat, dan dia diberi beberapa peran di beberapa basis data. Dalam contoh di atas, dia diberi izin baca saja untuk basis data "Pemasaran" dan izin baca/tulis untuk basis data "Penjualan".
Cara Melihat dan Mengelola MongoDB pengguna
Setelah akun dibuat, MongoDB menyediakan serangkaian perintah untuk memeriksa, memperbarui, dan menghapus tanpa menjatuhkanping dan membuat ulang setiap pengguna. Perintah-perintah ini dijalankan terhadap basis data tempat pengguna dibuat, jadi beralihlah ke basis data yang benar dengan pernyataan `use` sebelum menjalankannya.
Perintah manajemen pengguna yang paling umum adalah:
- db.getUsers() โ menampilkan daftar setiap pengguna yang terdefinisi dalam basis data saat ini beserta peran yang dipegang oleh masing-masing pengguna.
- db.getUser(โusernameโ) โ mengembalikan detail dari satu akun, yang berguna untuk mengaudit hak akses.
- db.grantRolesToUser() โ menambahkan satu atau lebih peran ke pengguna yang sudah ada tanpa memengaruhi peran yang ada.
- db.revokeRolesFromUser() โ menghapus peran spesifik, memperketat akses ketika tanggung jawab berubah.
- db.changeUserPassword() โ mengatur ulang kata sandi untuk suatu akun sambil tetap menyimpanping perannya tetap utuh.
- db.dropUser() โ Menghapus pengguna secara permanen dari basis data.
Contoh di bawah ini memberikan peran tambahan, mencabut peran lain, mengatur ulang kata sandi, dan akhirnya menghapus akun:
// List all users in the current database db.getUsers() // Grant an additional role to an existing user db.grantRolesToUser("Employeeadmin", [{ role: "readWrite", db: "Employee" }]) // Remove a role from a user db.revokeRolesFromUser("Employeeadmin", [{ role: "userAdmin", db: "Employee" }]) // Change a user's password db.changeUserPassword("Employeeadmin", "newPassword") // Delete a user db.dropUser("Employeeadmin")
Menjalankan db.getUsers() lagi setelah operasi ini memastikan bahwa perubahan telah diterapkan dan hanya akun dan peran yang dimaksud yang tersisa.
Praktik Terbaik untuk MongoDB Manajemen Pengguna
Akun pengguna yang direncanakan dengan baik akan menjaga MongoDB Penerapan yang aman dan mudah diaudit. Praktik-praktik berikut mengurangi risiko kebocoran data yang tidak disengaja dan penyalahgunaan hak akses:
- Terapkan prinsip hak akses minimal: Berikan hanya peran yang benar-benar dibutuhkan oleh akun tersebut, dengan memprioritaskan hak baca/tulis pada satu basis data daripada peran administratif yang luas.
- Hindari penggunaan root di lingkungan produksi: Gunakan peran root dan userAdminAnyDatabase hanya untuk pengaturan dan tugas darurat, bukan untuk operasi harian.
- Aktifkan autentikasi: Jalankan server dengan opsi โauth agar kredensial benar-benar diterapkan.
- Gunakan kata sandi yang kuat: Gabungkan panjang dan kompleksitas, dan ganti kata sandi secara berkala menggunakan db.changeUserPassword().
- Audit secara berkala: RevPeriksa output db.getUsers() secara berkala dan hapus akun yang tidak lagi diperlukan.
Secara bersama-sama, kebiasaan-kebiasaan ini memastikan bahwa setiap akun sesuai dengan kebutuhan nyata dan aksesnya dapat dilakukan dengan mudah. tracsetiap kali tinjauan keamanan dilakukan.






