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.
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"}]})
Code Selgitus:
- Esimene samm on mรครคrata "kasutajanimi" ja "parool", mis tuleb luua.
- 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.
- 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:
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:
db.createUser(
{
user: "Employeeadmin",
pwd: "password",
roles:[{role: "userAdmin" , db:"Employee"}]})
Code Selgitus:
- Esimene samm on mรครคrata "kasutajanimi" ja "parool", mis tuleb luua.
- 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.
- 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:
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.
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.






