Kako stvoriti korisnika i dodati ulogu MongoDB

โšก Pametni saลพetak

Stvaranje korisnika i dodavanje uloge u MongoDB oslanja se na metodu db.createUser() za definiranje vjerodajnica, dodjeljivanje ugraฤ‘enih uloga i privilegija opsega odreฤ‘enim bazama podataka, jaฤajuฤ‡i kontrolu pristupa preko administratorskih raฤuna i raฤuna s jednom bazom podataka.

  • ๐Ÿ”‘ Osnovna metoda: Naredba db.createUser() osigurava raฤun navoฤ‘enjem korisnika, lozinke i niza uloga u jednoj naredbi.
  • ๐Ÿ›ก๏ธ Opseg administratora: Uloga userAdminAnyDatabase daje prava upravljanja nad svakom bazom podataka, dok userAdmin ograniฤava kontrolu na jednu imenovanu bazu podataka.
  • ๐ŸŽฏ Dodjela uloga: Ugraฤ‘ene uloge poput ฤitanja i ฤitanjaPisanja precizno se preslikavaju na radnje koje korisnik moลพe izvesti na kolekciji.
  • ๐Ÿ‘ฅ Viลกe baza podataka: Jedan raฤun moลพe imati razliฤite uloge u nekoliko baza podataka unutar jednog niza uloga.
  • โœ… Provjera: Metoda db.getUsers() i vraฤ‡eni izlaz potvrฤ‘uju da su raฤuni i privilegije ispravno dodijeljeni.

Kako stvoriti korisnika i dodati ulogu MongoDB

ล to su ugraฤ‘ene uloge u MongoDB?

Prije nego ลกto kreirate raฤun, korisno je razumjeti ugraฤ‘ene uloge koje MongoDB pruลพa. Uloga je imenovana zbirka privilegija, a svaka privilegija uparuje resurs (bazu podataka ili zbirku) s radnjama koje su na njemu dopuลกtene. Dodjeljivanje uloge tijekom stvaranja korisnika stoga toฤno odreฤ‘uje ลกto taj raฤun moลพe uฤiniti.

MongoDB grupira svoje ugraฤ‘ene uloge u uloge korisnika baze podataka, uloge administratora baze podataka, uloge administratora klastera, uloge sigurnosnog kopiranja i vraฤ‡anja te uloge superkorisnika. Tablica u nastavku saลพima uloge koje se najฤeลกฤ‡e koriste pri upravljanju korisnicima:

Uloga Kategorija Dodijeljene privilegije
ฤitati Korisnik baze podataka Pristup samo za ฤitanje svim kolekcijama u bazi podataka koje nisu sistemske.
ฤitajPiลกi Korisnik baze podataka Pristup za ฤitanje plus umetanje, aลพuriranje i brisanje zbirki.
dbAdmin Administrator baze podataka Upravljanje shemama, indeksiranjem i statistikama za bazu podataka.
korisnikAdministrator Administrator baze podataka Stvaranje i mijenjanje korisnika i uloga u jednoj bazi podataka.
korisnikAdministratorBilo kojaBazaPodataka Superuser Administracija korisnika u svakoj bazi podataka u instanci.
korijen Superuser Potpuni pristup svim resursima i operacijama.

MongoDB Stvorite korisnika administratora

Stvaranje korisniฤkog administratora u MongoDB radi se pomoฤ‡u metode createUser. Sljedeฤ‡i primjer pokazuje kako se to moลพe uฤiniti.

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

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

MongoDB Stvorite korisnika administratora

Code Objaลกnjenje:

  1. Prvi korak je odreฤ‘ivanje "korisniฤkog imena" i "lozinke" koje je potrebno izraditi.
  2. Drugi korak je dodjeljivanje uloge korisniku. Buduฤ‡i da se mora raditi o administratoru baze podataka, u tom sluฤaju smo dodijelili ulogu โ€žuserAdminAnyDatabaseโ€œ. Ova uloga omoguฤ‡uje korisniku administratorske privilegije za sve baze podataka u MongoDB.
  3. Parametar db odreฤ‘uje admin bazu podataka, koja je posebna Meta baza podataka unutar MongoDB koji sadrลพi informacije za ovog korisnika.

Ako je naredba uspjeลกno izvrลกena, prikazat ฤ‡e se sljedeฤ‡i izlaz:

Izlaz:

MongoDB Stvorite korisnika administratora

Izlaz pokazuje da je korisnik pod nazivom "Guru99โ€ je kreiran i taj korisnik ima privilegije nad svim bazama podataka u MongoDB.

MongoDB Stvorite korisnika za jednu bazu podataka

Za stvaranje korisnika koji ฤ‡e upravljati jednom bazom podataka, moลพemo koristiti istu naredbu kao gore spomenuto, ali moramo koristiti samo opciju โ€žuserAdminโ€œ.

Sljedeฤ‡i primjer pokazuje kako se to moลพe uฤiniti:

MongoDB Stvorite korisnika za jednu bazu podataka

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

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

Code Objaลกnjenje:

  1. Prvi korak je odreฤ‘ivanje "korisniฤkog imena" i "lozinke" koje je potrebno izraditi.
  2. Drugi korak je dodjeljivanje uloge korisniku, koja se u ovom sluฤaju, buduฤ‡i da mora biti administrator baze podataka, dodjeljuje ulozi โ€žuserAdminโ€œ. Ova uloga omoguฤ‡uje korisniku administratorske privilegije samo za bazu podataka navedenu u opciji db.
  3. Parametar db navodi bazu podataka za koju korisnik treba imati administrativne ovlasti.

Ako je naredba uspjeลกno izvrลกena, prikazat ฤ‡e se sljedeฤ‡i izlaz:

Izlaz:

MongoDB Stvorite korisnika za jednu bazu podataka

Izlaz pokazuje da je kreiran korisnik pod nazivom "Employeeadmin" i da taj korisnik ima privilegije samo na bazi podataka "Employee".

Upravljanje korisnicima

Prvo, shvatite uloge koje trebate definirati. Postoji cijeli popis uloga dostupnih u MongoDBNa primjer, postoji uloga โ€žreadโ€œ koja dopuลกta samo pristup bazama podataka samo za ฤitanje, a zatim postoji uloga โ€žreadWriteโ€œ koja omoguฤ‡uje pristup bazi podataka za ฤitanje i pisanje. To znaฤi da korisnik moลพe izdavati naredbe za umetanje, brisanje i aลพuriranje kolekcija u toj bazi podataka.

Upravljanje korisnicima

db.createUser(
{
	user: "Mohan",

	pwd: "password",

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

Gornji isjeฤak koda pokazuje da je kreiran korisnik pod nazivom Mohan kojem je dodijeljeno viลกe uloga u viลกe baza podataka. U gornjem primjeru, dobio je dopuลกtenje samo za ฤitanje baze podataka โ€žMarketingโ€œ i dopuลกtenje za ฤitanje/pisanje baze podataka โ€žProdajaโ€œ.

Kako pregledavati i upravljati MongoDB korisnici

Nakon ลกto raฤuni postoje, MongoDB pruลพa skup naredbi za pregled, aลพuriranje i uklanjanje bez brisanjaping i ponovno stvaranje svakog korisnika. Ove naredbe se izvode na bazi podataka u kojoj je korisnik stvoren, stoga se prije njihovog izdavanja prebacite na ispravnu bazu podataka pomoฤ‡u naredbe use.

Najฤeลกฤ‡e naredbe za upravljanje korisnicima su:

  • db.getUsers() โ€” navodi sve korisnike definirane u trenutnoj bazi podataka zajedno s ulogama koje svaki od njih ima.
  • db.getUser(โ€œkorisniฤkoimeโ€) โ€” vraฤ‡a detalje jednog raฤuna, ลกto je korisno za revizijske privilegije.
  • db.grantRolesToUser() โ€” dodaje jednu ili viลกe uloga postojeฤ‡em korisniku bez utjecaja na trenutne uloge.
  • db.revokeRolesFromUser() โ€” uklanja odreฤ‘ene uloge, pooลกtravajuฤ‡i pristup kada se odgovornosti promijene.
  • db.promjenaKorisniฤkeLozinke() โ€” resetira lozinku za raฤun dok ฤuvaping njegove uloge netaknute.
  • db.dropUser() โ€” trajno briลกe korisnika iz baze podataka.

Primjer u nastavku dodjeljuje dodatnu ulogu, opoziva drugu, resetira lozinku i na kraju briลกe raฤun:

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

Ponovno pokretanje db.getUsers() nakon ovih operacija potvrฤ‘uje da su promjene primijenjene i da ostaju samo ลพeljeni raฤuni i uloge.

Najbolji primjeri iz prakse za MongoDB Upute za upravljanje

Dobro isplanirani korisniฤki raฤuni odrลพavaju MongoDB Implementacija je sigurna i jednostavna za reviziju. Sljedeฤ‡e prakse smanjuju rizik od sluฤajnog izlaganja podataka i zlouporabe privilegija:

  • Primijeni najmanje privilegije: Dodijelite samo uloge koje su raฤunu zaista potrebne, favorizirajuฤ‡i readWrite na jednoj bazi podataka u odnosu na ลกiroke administratorske uloge.
  • Izbjegavajte root u produkciji: Uloge root i userAdminAnyDatabase rezervirajte za postavljanje i hitne zadatke umjesto za dnevne operacije.
  • Omoguฤ‡i autentifikaciju: Pokrenite posluลพitelj s opcijom โ€“auth kako bi se vjerodajnice stvarno primijenile.
  • Koristite jake lozinke: Kombinirajte duljinu i sloลพenost te rotirajte lozinke pomoฤ‡u db.changeUserPassword() prema rasporedu.
  • Redovito provjeravajte: RevPeriodiฤno pregledava izlaz funkcije db.getUsers() i uklanja raฤune koji viลกe nisu potrebni.

Zajedno, ove navike osiguravaju da svaki raฤun odgovara stvarnoj potrebi i da se pristup moลพe tracsvaki put kada se provodi sigurnosni pregled.

Pitanja i odgovori

Da. AI asistenti mogu pretvoriti obiฤan opis u valjanu naredbu db.createUser(), dodijeliti ispravan niz uloga i ograniฤiti ga na bazu podataka. Uvijek testirajte generiranu naredbu na neprodukcijskoj bazi podataka prije pokretanja.

Da. Alati za reviziju voฤ‘eni umjetnom inteligencijom mogu ฤitati izlaz db.getUsers(), oznaฤavati raฤune koji imaju root ili userAdminAnyDatabase pristup i predlagati uloge s najniลพim privilegijama. Administratori bi i dalje trebali pregledati svaku preporuku prije opoziva pristupa u aktivnom sustavu.

Uloga userAdmin upravlja korisnicima i ulogama na jednoj specifiฤnoj bazi podataka, dok userAdminAnyDatabase dodjeljuje privilegije administracije korisnika na svakoj bazi podataka u instanci. Koristite userAdmin za ograniฤenu kontrolu, a userAdminAnyDatabase samo za pouzdane administratore.

Prebacite se na bazu podataka u kojoj se korisnik nalazi pomoฤ‡u naredbe use, a zatim pokrenite db.dropUser(โ€œkorisniฤko_imeโ€). MongoDB uklanja raฤun i njegove uloge u toj bazi podataka. Potvrdite uklanjanje pokretanjem db.getUsers() nakon toga.

Saลพmite ovu objavu uz: