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.

  • ๐Ÿ”‘ Metode Inti: Perintah db.createUser() menyediakan akun dengan menentukan pengguna, kata sandi, dan array peran dalam satu pernyataan.
  • ๐Ÿ›ก๏ธ Lingkup Administrator: Peran userAdminAnyDatabase memberikan hak pengelolaan di semua basis data, sedangkan userAdmin membatasi kendali hanya pada satu basis data tertentu.
  • ๐ŸŽฏ Penugasan Peran: Peran bawaan seperti read dan readWrite sesuai dengan tindakan yang mungkin dilakukan pengguna pada sebuah koleksi.
  • ๐Ÿ‘ฅ Banyak Basis Data: Satu akun dapat memegang peran berbeda di beberapa basis data dalam satu larik peran.
  • โœ… Verifikasi: Metode db.getUsers() dan output yang dikembalikan mengkonfirmasi bahwa akun dan hak akses telah disediakan dengan benar.

Cara Membuat Pengguna dan Menambahkan Peran di MongoDB

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"}]})

MongoDB Buat Pengguna Administrator

Code Penjelasan:

  1. Langkah pertama adalah menentukan โ€œusernameโ€ dan โ€œpasswordโ€ yang perlu dibuat.
  2. 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.
  3. 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:

MongoDB Buat Pengguna Administrator

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:

MongoDB Buat Pengguna untuk Database Tunggal

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

	roles:[{role: "userAdmin" , db:"Employee"}]})

Code Penjelasan:

  1. Langkah pertama adalah menentukan โ€œusernameโ€ dan โ€œpasswordโ€ yang perlu dibuat.
  2. 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.
  3. Parameter db menentukan database dimana pengguna harus memiliki hak administratif.

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:

Keluaran:

MongoDB Buat Pengguna untuk Database Tunggal

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.

Mengelola Pengguna

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.

Pertanyaan Umum Demo Slot

Ya. Asisten AI dapat mengubah deskripsi biasa menjadi perintah db.createUser() yang valid, menetapkan array peran yang tepat, dan membatasinya ke basis data. Selalu uji perintah yang dihasilkan pada basis data non-produksi sebelum menjalankannya.

Ya. Alat audit berbasis AI dapat membaca output db.getUsers(), menandai akun yang memegang hak akses root atau userAdminAnyDatabase, dan menyarankan peran dengan hak akses minimal. Administrator tetap harus meninjau setiap rekomendasi sebelum mencabut akses di sistem yang sedang berjalan.

Peran userAdmin mengelola pengguna dan peran pada satu basis data tertentu, sedangkan userAdminAnyDatabase memberikan hak istimewa administrasi pengguna di semua basis data dalam instance tersebut. Gunakan userAdmin untuk kontrol yang terbatas dan userAdminAnyDatabase hanya untuk administrator tepercaya.

Beralih ke basis data tempat pengguna tersebut berada dengan perintah use, lalu jalankan db.dropUser(โ€œusernameโ€). MongoDB Menghapus akun dan perannya pada basis data tersebut. Konfirmasikan penghapusan dengan menjalankan db.getUsers() setelahnya.

Ringkaslah postingan ini dengan: