Kullanıcı Oluşturma ve Rol Ekleme MongoDB

⚡ Akıllı Özet

Kullanıcı oluşturma ve rol ekleme MongoDB Kimlik bilgilerini tanımlamak, yerleşik rolleri atamak ve ayrıcalıkları belirli veritabanlarına sınırlandırmak için db.createUser() yöntemine dayanır ve bu sayede yönetimsel ve tek veritabanı hesapları genelinde erişim kontrolünü güçlendirir.

  • 🔑 Temel Yöntem: `db.createUser()` komutu, tek bir ifadede kullanıcıyı, şifreyi ve roller dizisini belirterek bir hesap oluşturur.
  • 🛡️ Yöneticinin Yetki Alanı: userAdminAnyDatabase rolü, tüm veritabanlarında yönetim hakları sağlarken, userAdmin rolü kontrolü yalnızca belirtilen bir veritabanıyla sınırlandırır.
  • 🎯 Rol Atama: Okuma ve okuma/yazma gibi yerleşik roller, kullanıcının bir koleksiyon üzerinde gerçekleştirebileceği eylemlere tam olarak karşılık gelir.
  • 👥 Çoklu Veritabanları: Tek bir hesap, tek bir rol dizisi içinde birden fazla veritabanında farklı roller üstlenebilir.
  • Doğrulama: db.getUsers() metodu ve döndürülen çıktı, hesapların ve ayrıcalıkların doğru şekilde sağlandığını doğrulamaktadır.

Kullanıcı nasıl oluşturulur ve rol nasıl eklenir? MongoDB

Dahili roller nelerdir? MongoDB?

Hesap oluşturmadan önce, yerleşik rolleri anlamak faydalı olacaktır. MongoDB Rol, adlandırılmış bir ayrıcalıklar koleksiyonudur ve her ayrıcalık, bir kaynağı (veritabanı veya koleksiyon) üzerinde izin verilen eylemlerle eşleştirir. Bu nedenle, kullanıcı oluşturma sırasında bir rol atamak, o hesabın tam olarak ne yapabileceğine karar verir.

MongoDB Dahili rollerini veritabanı kullanıcı rolleri, veritabanı yönetim rolleri, küme yönetim rolleri, yedekleme ve geri yükleme rolleri ve süper kullanıcı rolleri olarak gruplandırır. Aşağıdaki tablo, kullanıcıları yönetirken en sık kullanılan rolleri özetlemektedir:

Rol Kategoriler Verilen Ayrıcalıklar
okumak Veritabanı Kullanıcısı Veritabanındaki sistem dışı tüm koleksiyonlara salt okunur erişim.
oku/yaz Veritabanı Kullanıcısı Koleksiyonlara okuma erişiminin yanı sıra ekleme, güncelleme ve silme işlemleri yapabilme yeteneği.
dbAdmin Veritabanı Yöneticisi Veritabanı için şema, indeksleme ve istatistik yönetimi.
kullanıcıYönetici Veritabanı Yöneticisi Tek bir veritabanı üzerinde kullanıcılar ve roller oluşturun ve değiştirin.
kullanıcıYöneticisiHerhangiBirVeritabanı Süper Örnekteki her veritabanında kullanıcı yönetimi.
kök Süper Tüm kaynaklara ve işlemlere tam erişim.

MongoDB Yönetici Kullanıcı Oluştur

Kullanıcı yöneticisi oluşturma MongoDB createUser metodu kullanılarak yapılır. Aşağıdaki örnek bunun nasıl yapılabileceğini gösterir.

db.createUser(
{	user: "Guru99",
	pwd: "password",

	roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})

MongoDB Yönetici Kullanıcı Oluştur

Code Açıklama:

  1. İlk adım, oluşturulması gereken “kullanıcı adı” ve “şifre”yi belirlemektir.
  2. İkinci adım, kullanıcıya bir rol atamaktır. Kullanıcının veritabanı yöneticisi olması gerektiğinden, "userAdminAnyDatabase" rolünü atadık. Bu rol, kullanıcının veritabanındaki tüm veritabanlarına yönetimsel ayrıcalıklara sahip olmasını sağlar. MongoDB.
  3. `db` parametresi, yönetim veritabanını belirtir; bu veritabanı, özel bir Meta veritabanıdır. MongoDB Bu, söz konusu kullanıcıya ait bilgileri saklayan bir sistemdir.

Komut başarıyla yürütülürse, aşağıdaki Çıktı gösterilecektir:

Çıktı:

MongoDB Yönetici Kullanıcı Oluştur

Çıktı, bir kullanıcının "Guru"99" numaralı kullanıcı oluşturuldu ve bu kullanıcının tüm veritabanları üzerinde ayrıcalıkları var. MongoDB.

MongoDB Tek Veritabanı için Kullanıcı Oluştur

Tek bir veritabanını yönetecek bir kullanıcı oluşturmak için yukarıda belirtilen komutu kullanabiliriz, ancak yalnızca "userAdmin" seçeneğini kullanmamız gerekir.

Aşağıdaki örnek, bunun nasıl yapılabileceğini göstermektedir:

MongoDB Tek Veritabanı için Kullanıcı Oluştur

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

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

Code Açıklama:

  1. İlk adım, oluşturulması gereken “kullanıcı adı” ve “şifre”yi belirlemektir.
  2. İkinci adım, kullanıcıya bir rol atamaktır; bu durumda, veritabanı yöneticisi olması gerektiğinden, kullanıcıya "userAdmin" rolü atanır. Bu rol, kullanıcının yalnızca db seçeneğinde belirtilen veritabanına yönetimsel ayrıcalıklar tanımasını sağlar.
  3. db parametresi kullanıcının yönetici ayrıcalıklarına sahip olması gereken veritabanını belirtir.

Komut başarıyla yürütülürse, aşağıdaki Çıktı gösterilecektir:

Çıktı:

MongoDB Tek Veritabanı için Kullanıcı Oluştur

Çıktı, “Employeeadmin” adında bir kullanıcının oluşturulduğunu ve bu kullanıcının yalnızca “Employee” veritabanında ayrıcalıklara sahip olduğunu gösterir.

Kullanıcıları yönetme

Öncelikle, tanımlamanız gereken rolleri anlayın. Kullanılabilir rollerin tam bir listesi mevcuttur. MongoDBÖrneğin, yalnızca veritabanlarına salt okunur erişim sağlayan "okuma" rolü ve veritabanına okuma ve yazma erişimi sağlayan "okuma/yazma" rolü vardır. Bu, kullanıcının o veritabanındaki koleksiyonlar üzerinde ekleme, silme ve güncelleme komutlarını verebileceği anlamına gelir.

Kullanıcıları Yönetme

db.createUser(
{
	user: "Mohan",

	pwd: "password",

	roles:[
	{ role: "read" , db:"Marketing" },
	{ role: "readWrite" , db:"Sales" }
	]
})

Yukarıdaki kod parçacığı, Mohan adında bir kullanıcının oluşturulduğunu ve kendisine birden fazla veritabanında birden fazla rol atandığını göstermektedir. Yukarıdaki örnekte, kendisine "Pazarlama" veritabanına salt okunur izin ve "Satış" veritabanına okuma/yazma izni verilmiştir.

Görüntüleme ve Yönetme MongoDB Kullanıcılar

Hesaplar oluşturulduktan sonra, MongoDB Bunları silmeden incelemek, güncellemek ve kaldırmak için bir dizi komut sağlar.ping ve her kullanıcıyı yeniden oluşturur. Bu komutlar, kullanıcının oluşturulduğu veritabanına karşı çalışır, bu nedenle bunları çalıştırmadan önce `use` ifadesiyle doğru veritabanına geçin.

En yaygın kullanıcı yönetimi komutları şunlardır:

  • db.getUsers() — Mevcut veritabanında tanımlı olan her kullanıcıyı ve her birinin sahip olduğu rolleri listeler.
  • db.getUser("kullanıcı adı") — Tek bir hesabın ayrıntılarını döndürür; bu da ayrıcalıkların denetlenmesi için faydalıdır.
  • db.grantRolesToUser() — Mevcut rolleri etkilemeden, mevcut bir kullanıcıya bir veya daha fazla rol ekler.
  • db.revokeRolesFromUser() — Belirli rolleri ortadan kaldırarak, sorumluluklar değiştiğinde erişimi kısıtlar.
  • db.changeUserPassword() — Hesabın şifresini sıfırlarping rolleri bozulmadan kaldı.
  • db.dropUser() — Kullanıcıyı veritabanından kalıcı olarak siler.

Aşağıdaki örnek, ek bir rol atama, bir diğerini iptal etme, parolayı sıfırlama ve son olarak hesabı silme işlemlerini gerçekleştirir:

// 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")

Bu işlemlerden sonra db.getUsers() komutunu tekrar çalıştırmak, değişikliklerin uygulandığını ve yalnızca amaçlanan hesapların ve rollerin kaldığını doğrular.

için En İyi Uygulamalar MongoDB Kullanıcı Yönetimi

İyi planlanmış kullanıcı hesapları, MongoDB Dağıtım güvenli ve denetlenmesi kolaydır. Aşağıdaki uygulamalar, kazara veri ifşası ve ayrıcalıkların kötüye kullanılması riskini azaltır:

  • En az ayrıcalık ilkesini uygulayın: Hesabın gerçekten ihtiyaç duyduğu rolleri atayın; geniş kapsamlı yönetimsel roller yerine tek bir veritabanında okuma/yazma yetkisini tercih edin.
  • Üretim ortamında root erişimini önleyin: Root ve userAdminAnyDatabase rollerini günlük işlemlerden ziyade kurulum ve acil durum görevleri için ayırın.
  • Kimlik doğrulamayı etkinleştirin: Sunucuyu –auth seçeneğiyle başlatın, böylece kimlik bilgilerinin gerçekten uygulanması sağlanır.
  • Güçlü parolalar kullanın: Uzunluk ve karmaşıklığı birleştirin ve db.changeUserPassword() fonksiyonunu kullanarak parolaları belirli bir program dahilinde değiştirin.
  • Düzenli olarak denetleyin: Revdb.getUsers() çıktısını periyodik olarak inceleyin ve artık gerekli olmayan hesapları kaldırın.

Bu alışkanlıklar bir araya geldiğinde, her hesabın gerçek bir ihtiyaca karşılık gelmesini ve erişimin sağlanabilmesini garanti eder. tracGüvenlik incelemesi yapıldığında düzenlenir.

SSS

Evet. Yapay zeka asistanları, basit bir açıklamayı geçerli bir db.createUser() komutuna dönüştürebilir, doğru roller dizisini atayabilir ve bunu bir veritabanına uygulayabilir. Oluşturulan komutu çalıştırmadan önce daima üretim dışı bir veritabanında test edin.

Evet. Yapay zeka destekli denetim araçları, db.getUsers() çıktısını okuyabilir, root veya userAdminAnyDatabase yetkisine sahip hesapları işaretleyebilir ve en düşük ayrıcalıklı rolleri önerebilir. Yöneticiler, canlı bir sistemde erişimi iptal etmeden önce her öneriyi gözden geçirmelidir.

`userAdmin` rolü, belirli bir veritabanındaki kullanıcıları ve rolleri yönetirken, `userAdminAnyDatabase` rolü, örnekteki her veritabanında kullanıcı yönetimi ayrıcalıkları sağlar. Kapsamlı kontrol için `userAdmin`'i, yalnızca güvenilir yöneticiler için `userAdminAnyDatabase`'i kullanın.

`use` komutuyla kullanıcının bulunduğu veritabanına geçin, ardından `db.dropUser("kullanıcıadı")` komutunu çalıştırın. MongoDB Bu işlem, ilgili hesabı ve veritabanındaki rollerini siler. Silme işlemini doğrulamak için daha sonra db.getUsers() komutunu çalıştırın.

Bu yazıyı şu şekilde özetleyin: