Kuidas kasutajat luua ja rolli lisada MongoDB

โšก Nutikas kokkuvรตte

Kasutaja loomine ja rolli lisamine MongoDB tugineb db.createUser() meetodile mandaatide mรครคratlemiseks, sisseehitatud rollide mรครคramiseks ja ulatusรตiguste mรครคramiseks konkreetsetele andmebaasidele, tugevdades juurdepรครคsu kontrolli administratiivsete ja รผhe andmebaasi kontode vahel.

  • ๐Ÿ”‘ Pรตhimeetod: Kรคsk db.createUser() loob konto, mรครคrates รผhes lauses kasutaja, parooli ja rollide massiivi.
  • ๐Ÿ›ก๏ธ Administraatori ulatus: Roll userAdminAnyDatabase annab haldusรตigused igale andmebaasile, samas kui roll userAdmin piirab kontrolli รผhe nimega andmebaasiga.
  • ๐ŸŽฏ Rolli mรครคramine: Sisseehitatud rollid, nรคiteks read ja readWrite, seovad tรคpselt toimingud, mida kasutaja saab kollektsiooniga teha.
  • ๐Ÿ‘ฅ Mitu andmebaasi: รœks konto saab รผhe rollimassiivi sees hoida erinevaid rolle mitmes andmebaasis.
  • โœ… Kontrollimine: Meetod db.getUsers() ja tagastatud vรคljund kinnitavad, et kontod ja รตigused on รตigesti eraldatud.

Kuidas luua kasutaja ja lisada roll MongoDB

Mis on sisseehitatud rollid MongoDB?

Enne konto loomist on kasulik mรตista sisseehitatud rolle, mis MongoDB pakub. Roll on nimega รตiguste kogum ja iga รตigus seob ressursi (andmebaasi vรตi kogumi) sellel lubatud toimingutega. Seega otsustab kasutaja loomisel rolli mรครคramine tรคpselt, mida see konto teha saab.

MongoDB rรผhmitab oma sisseehitatud rollid andmebaasi kasutajarollideks, andmebaasi administraatorirollideks, klastri administraatorirollideks, varundamise ja taastamise rollideks ning superkasutaja rollideks. Allolev tabel vรตtab kokku kasutajate haldamisel kรตige sagedamini kasutatavad rollid:

Roll Kategooria Antud privileegid
lugenud Andmebaasi kasutaja Kirjutuskaitstud juurdepรครคs kรตigile andmebaasi mittesรผsteemsetele kogudele.
loeKirjuta Andmebaasi kasutaja Lugemisรตigus ning kollektsioonide sisestamine, vรคrskendamine ja kustutamine.
dbAdmin Andmebaasi administraator Andmebaasi skeemi, indekseerimise ja statistika haldamine.
kasutajaAdmin Andmebaasi administraator Loo ja muuda kasutajaid ja rolle รผhes andmebaasis.
kasutajaAdminAnyDatabase Administraatorina Kasutajate haldamine kรตigis eksemplari andmebaasides.
juur Administraatorina Tรคielik juurdepรครคs kรตikidele ressurssidele ja toimingutele.

MongoDB Loo administraatorikasutaja

Kasutaja administraatori loomine MongoDB tehakse kasutades createUser meetodit. Jรคrgmine nรคide nรคitab, kuidas seda teha.

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

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

MongoDB Loo administraatorikasutaja

Code Selgitus:

  1. Esimene samm on mรครคrata "kasutajanimi" ja "parool", mis tuleb luua.
  2. Teine samm on kasutajale rolli mรครคramine. Kuna tegemist peab olema andmebaasi administraatoriga, siis oleme mรครคranud rolli โ€žuserAdminAnyDatabaseโ€. See roll annab kasutajale administraatoriรตigused kรตigile andmebaasidele. MongoDB.
  3. Parameeter db mรครคrab administraatori andmebaasi, mis on spetsiaalne Meta-andmebaas sees. MongoDB mis sisaldab selle kasutaja kohta kรคivat teavet.

Kui kรคsk on edukalt tรคidetud, kuvatakse jรคrgmine vรคljund:

Vรคljund:

MongoDB Loo administraatorikasutaja

Vรคljund nรคitab, et kasutaja nimega โ€žGuru99โ€ loodi ja sellel kasutajal on รตigused kรตigi andmebaaside รผle MongoDB.

MongoDB Looge kasutaja รผhe andmebaasi jaoks

Kasutaja loomiseks, kes haldab รผhte andmebaasi, saame kasutada sama kรคsku nagu eespool mainitud, kuid peame kasutama ainult valikut โ€žuserAdminโ€.

Jรคrgnev nรคide nรคitab, kuidas seda teha saab:

MongoDB Looge kasutaja รผhe andmebaasi jaoks

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

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

Code Selgitus:

  1. Esimene samm on mรครคrata "kasutajanimi" ja "parool", mis tuleb luua.
  2. Teine samm on kasutajale rolli mรครคramine, mis antud juhul, kuna tegemist peab olema andmebaasi administraatoriga, on mรครคratud rollile โ€žuserAdminโ€. See roll annab kasutajale administraatoriรตigused ainult db valikus mรครคratud andmebaasile.
  3. Parameeter db mรครคrab andmebaasi, milles kasutajal peavad olema administraatoriรตigused.

Kui kรคsk on edukalt tรคidetud, kuvatakse jรคrgmine vรคljund:

Vรคljund:

MongoDB Looge kasutaja รผhe andmebaasi jaoks

Vรคljund nรคitab, et loodi kasutaja nimega "Employeeadmin" ja sellel kasutajal on รตigused ainult andmebaasis "Tรถรถtaja".

Kasutajate haldamine

Esmalt tehke endale selgeks rollid, mida peate mรครคratlema. Saadaval on terve nimekiri rollidest. MongoDBNรคiteks on olemas roll โ€žlugemineโ€, mis lubab andmebaasidele ainult lugemisรตigust, ja siis on olemas roll โ€žlugemine/kirjutamineโ€, mis annab andmebaasile lugemis- ja kirjutamisรตiguse. See tรคhendab, et kasutaja saab selle andmebaasi kollektsioonidele anda kรคske sisestamine, kustutamine ja vรคrskendamine.

Kasutajate haldamine

db.createUser(
{
	user: "Mohan",

	pwd: "password",

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

รœlaltoodud koodilรตik nรคitab, et luuakse kasutaja nimega Mohan ja talle mรครคratakse mitu rolli mitmes andmebaasis. รœlaltoodud nรคites antakse talle kirjutuskaitstud รตigus andmebaasile โ€žTurundusโ€œ ja lugemis-/kirjutusรตigus andmebaasile โ€žMรผรผkโ€œ.

Kuidas vaadata ja hallata MongoDB kasutajad

Pรคrast kontode olemasolu MongoDB pakub kรคskude komplekti nende kontrollimiseks, vรคrskendamiseks ja eemaldamiseks ilma kaotsiminekutaping ja iga kasutaja uuesti loomist. Need kรคsud kรคivitatakse andmebaasis, kus kasutaja loodi, seega enne nende vรคljastamist lรผlitage รตigele andmebaasile use-lause abil.

Kรตige levinumad kasutajahalduse kรคsud on jรคrgmised:

  • db.getUsers() โ€” loetleb kรตik praeguses andmebaasis mรครคratletud kasutajad koos igaรผhe rollidega.
  • db.getUser("kasutajanimi") โ€” tagastab รผhe konto รผksikasjad, mis on kasulik รตiguste auditeerimiseks.
  • db.grantRolesToUser() โ€” lisab olemasolevale kasutajale รผhe vรตi mitu rolli, ilma et see mรตjutaks praeguseid rolle.
  • db.trevokeRolesFromUser() โ€” eemaldab teatud rollid, piirates juurdepรครคsu vastutuse muutumisel.
  • db.muudaKasutajaParooli() โ€” lรคhtestab konto parooli, kui see on salvestatudping selle rollid puutumata.
  • db.dropUser() โ€” kustutab kasutaja andmebaasist jรครคdavalt.

Allolev nรคide annab lisarolli, tรผhistab teise, lรคhtestab parooli ja lรตpuks kustutab konto:

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

Pรคrast neid toiminguid db.getUsers() uuesti kรคivitamine kinnitab, et muudatused rakendati ning alles jรครคvad ainult kavandatud kontod ja rollid.

Parimad tavad MongoDB Kasutaja haldamine

Hรคsti planeeritud kasutajakontod hoiavad MongoDB juurutamine on turvaline ja hรตlpsasti auditeeritav. Jรคrgmised tavad vรคhendavad juhusliku andmete avalikustamise ja รตiguste vรครคrkasutamise ohtu:

  • Rakenda minimaalseid privileege: Anna kontole ainult need rollid, mida see tegelikult vajab, eelistades readWrite'i รผhel andmebaasil laiaulatuslikele administratiivsetele rollidele.
  • Vรคltige juurdumist tootmises: Reserveeri root ja userAdminAnyDatabase rollid seadistamiseks ja hรคdaolukordade รผlesannete jaoks, mitte igapรคevaste toimingute jaoks.
  • Luba autentimine: Kรคivitage server valikuga โ€“auth, et volitusi ka tegelikult jรตustataks.
  • Kasutage tugevaid paroole: Kombineeri pikkust ja keerukust ning vaheta paroole ajakava jรคrgi, kasutades db.changeUserPassword().
  • Regulaarne auditeerimine: Review db.getUsers() annab perioodiliselt vรคljundit ja eemaldab kontod, mida enam ei vajata.

Need harjumused tagavad koos, et iga konto vastab tegelikule vajadusele ja et juurdepรครคs on vรตimalik. traciga kord, kui toimub turvaรผlevaade.

KKK

Jah. Tehisintellekti assistendid saavad tavalise kirjelduse muuta kehtivaks db.createUser() kรคsuks, mรครคrata รตiged rollide massiivi ja mรครคrata selle ulatuse andmebaasile. Enne genereeritud kรคsu kรคivitamist testige seda alati mittetootmisandmebaasis.

Jah. Tehisintellektil pรตhinevad auditeerimistรถรถriistad saavad lugeda db.getUsers() vรคljundit, mรคrgistada root vรตi userAdminAnyDatabase kontosid ja soovitada vรคhima privileegiga rolle. Administraatorid peaksid enne reaalajas sรผsteemis juurdepรครคsu tรผhistamist siiski iga soovituse รผle vaatama.

Roll userAdmin haldab kasutajaid ja rolle รผhes kindlas andmebaasis, samas kui userAdminAnyDatabase annab kasutajate administreerimise รตigused kรตigis eksemplari andmebaasides. Kasutage rolli userAdmin piiratud ulatusega juhtimiseks ja rolli userAdminAnyDatabase ainult usaldusvรครคrsete administraatorite jaoks.

Lรผlitu kรคsuga use andmebaasi, kus kasutaja asub, ja kรคivita seejรคrel db.dropUser(โ€œkasutajanimiโ€). MongoDB eemaldab konto ja selle rollid selles andmebaasis. Kinnitage eemaldamine seejรคrel kรคsuga db.getUsers().

Vรตta see postitus kokku jรคrgmiselt: