Käyttäjän luominen ja roolin lisääminen MongoDB
⚡ Älykäs yhteenveto
Käyttäjän luominen ja roolin lisääminen MongoDB perustuu db.createUser()-metodiin tunnistetietojen määrittämiseen, sisäänrakennettujen roolien ja laajuusoikeuksien osoittamiseen tietyille tietokannoille, mikä vahvistaa käyttöoikeuksien hallintaa järjestelmänvalvojan ja yksittäisten tietokantatilien välillä.
Mitä ovat sisäänrakennetut roolit MongoDB?
Ennen tilin luomista on hyödyllistä ymmärtää sisäänrakennetut roolit, jotka MongoDB tarjoaa. Rooli on nimetty kokoelma oikeuksia, ja jokainen oikeus yhdistää resurssin (tietokannan tai kokoelman) siihen sallittuihin toimintoihin. Roolin määrittäminen käyttäjän luomisen yhteydessä siis määrittää tarkalleen, mitä kyseinen tili voi tehdä.
MongoDB ryhmittelee sisäänrakennetut roolinsa tietokannan käyttäjärooleihin, tietokannan järjestelmänvalvojan rooleihin, klusterin järjestelmänvalvojan rooleihin, varmuuskopiointi- ja palautusrooleihin sekä pääkäyttäjärooleihin. Alla olevassa taulukossa on yhteenveto käyttäjien hallinnassa useimmin käytetyistä rooleista:
| Rooli | Luokka | Myönnetyt etuoikeudet |
|---|---|---|
| luettu | Tietokannan käyttäjä | Vain lukuoikeus kaikkiin tietokannan ei-järjestelmäkokoelmiin. |
| lueKirjoita | Tietokannan käyttäjä | Lukuoikeus sekä kokoelmien lisääminen, päivittäminen ja poistaminen. |
| dbAdmin | Tietokannan ylläpitäjä | Tietokannan skeema, indeksointi ja tilastojen hallinta. |
| käyttäjäylläpitäjä | Tietokannan ylläpitäjä | Luo ja muokkaa käyttäjiä ja rooleja yhdessä tietokannassa. |
| käyttäjäYlläpitäjäMikä tahansaTietokanta | Superuser | Käyttäjien hallinta kaikissa instanssin tietokannoissa. |
| juuri | Superuser | Täysi pääsy kaikkiin resursseihin ja toimintoihin. |
MongoDB Luo järjestelmänvalvojan käyttäjä
Luodaan käyttäjän järjestelmänvalvoja MongoDB tehdään CreateUser-menetelmällä. Seuraava esimerkki näyttää, kuinka tämä voidaan tehdä.
db.createUser(
{ user: "Guru99",
pwd: "password",
roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Code Selitys:
- Ensimmäinen askel on määrittää "käyttäjänimi" ja "salasana", jotka on luotava.
- Toinen vaihe on käyttäjälle roolin määrittäminen. Koska käyttäjän on oltava tietokannan ylläpitäjä, olemme tässä tapauksessa määrittäneet roolin ”userAdminAnyDatabase”. Tämä rooli antaa käyttäjälle järjestelmänvalvojan oikeudet kaikkiin tietokantoihin. MongoDB.
- db-parametri määrittää admin-tietokannan, joka on erityinen Meta-tietokanta MongoDB joka sisältää tämän käyttäjän tiedot.
Jos komento suoritetaan onnistuneesti, seuraava tulos näytetään:
lähtö:
Tuloste näyttää, että käyttäjä nimeltä "Guru99” luotiin ja käyttäjällä on oikeudet kaikkiin tietokantoihin MongoDB.
MongoDB Luo käyttäjä yhdelle tietokannalle
Yhden tietokannan hallinnoijan luomiseksi voimme käyttää samaa komentoa kuin yllä mainittiin, mutta meidän on käytettävä vain ”userAdmin”-vaihtoehtoa.
Seuraava esimerkki osoittaa, miten tämä voidaan tehdä:
db.createUser(
{
user: "Employeeadmin",
pwd: "password",
roles:[{role: "userAdmin" , db:"Employee"}]})
Code Selitys:
- Ensimmäinen askel on määrittää "käyttäjänimi" ja "salasana", jotka on luotava.
- Toinen vaihe on käyttäjälle roolin määrittäminen. Tässä tapauksessa käyttäjälle, koska sen on oltava tietokannan ylläpitäjä, annetaan rooli ”userAdmin”. Tämä rooli antaa käyttäjälle järjestelmänvalvojan oikeudet vain db-asetuksella määritettyyn tietokantaan.
- Parametri db määrittää tietokannan, johon käyttäjällä tulee olla järjestelmänvalvojan oikeudet.
Jos komento suoritetaan onnistuneesti, seuraava tulos näytetään:
lähtö:
Tulos näyttää, että käyttäjä nimeltä "Employeeadmin" luotiin ja että käyttäjällä on oikeudet vain "Employee"-tietokantaan.
Käyttäjien hallinta
Ymmärrä ensin roolit, jotka sinun on määriteltävä. Saatavilla on täydellinen luettelo rooleista MongoDBEsimerkiksi on olemassa ”read”-rooli, joka sallii vain lukuoikeuden tietokantoihin, ja sitten on ”readWrite”-rooli, joka tarjoaa luku- ja kirjoitusoikeudet tietokantaan. Tämä tarkoittaa, että käyttäjä voi antaa lisäys-, poisto- ja päivityskomentoja kyseisen tietokannan kokoelmille.
db.createUser(
{
user: "Mohan",
pwd: "password",
roles:[
{ role: "read" , db:"Marketing" },
{ role: "readWrite" , db:"Sales" }
]
})
Yllä oleva koodinpätkä osoittaa, että luodaan käyttäjä nimeltä Mohan ja hänelle määritetään useita rooleja useissa tietokannoissa. Yllä olevassa esimerkissä hänelle annetaan vain luku -oikeudet "Markkinointi"-tietokantaan ja readWrite-oikeudet "Myynti"-tietokantaan.
Katselu ja hallinta MongoDB käyttäjät
Kun tilit ovat olemassa, MongoDB tarjoaa joukon komentoja niiden tarkastamiseen, päivittämiseen ja poistamiseen ilman pudotustaping ja jokaisen käyttäjän uudelleenluominen. Nämä komennot suoritetaan siinä tietokannassa, jossa käyttäjä luotiin, joten vaihda oikeaan tietokantaan use-lauseella ennen niiden suorittamista.
Yleisimmät käyttäjähallintakomennot ovat:
- db.getUsers() — listaa kaikki nykyisessä tietokannassa määritetyt käyttäjät sekä kunkin käyttäjän roolit.
- db.getUser("käyttäjätunnus") — palauttaa yhden tilin tiedot, mikä on hyödyllistä oikeuksien auditoinnissa.
- db.grantRolesToUser() — lisää yhden tai useamman roolin olemassa olevalle käyttäjälle vaikuttamatta nykyisiin rooleihin.
- db.revokeRolesFromUser() — poistaa tiettyjä rooleja ja tiukentaa käyttöoikeuksia vastuiden muuttuessa.
- db.changeUserPassword() — nollaa tilin salasanan samalla kun keep-toimintoa käytetäänping roolinsa ehjinä.
- db.dropUser() — poistaa käyttäjän pysyvästi tietokannasta.
Alla oleva esimerkki myöntää ylimääräisen roolin, peruuttaa toisen, nollaa salasanan ja lopuksi poistaa tilin:
// 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")
Suorittamalla db.getUsers()-funktion uudelleen näiden toimintojen jälkeen varmistetaan, että muutokset on otettu käyttöön ja että vain aiotut tilit ja roolit ovat jäljellä.
Parhaat käytännöt MongoDB Käyttäjien hallinta
Hyvin suunnitellut käyttäjätilit pitävät MongoDB käyttöönotto on turvallista ja helposti auditoitavaa. Seuraavat käytännöt vähentävät tahattoman datan paljastumisen ja käyttöoikeuksien väärinkäytön riskiä:
- Käytä pienimpiä oikeuksia: Myönnä vain ne roolit, joita tili todella tarvitsee, suosien readWrite-käyttöoikeutta yksittäisessä tietokannassa laajojen järjestelmänvalvojan roolien sijaan.
- Vältä juurihyökkäyksiä tuotannossa: Varaa pääkäyttäjän ja userAdminAnyDatabase-roolit asennus- ja hätätehtäviin päivittäisten toimintojen sijaan.
- Ota todennus käyttöön: Käynnistä palvelin –auth-asetuksella, jotta tunnistetiedot todella otetaan käyttöön.
- Käytä vahvoja salasanoja: Yhdistä pituus ja monimutkaisuus ja kierrätä salasanoja aikataulun mukaisesti db.changeUserPassword()-funktiolla.
- Tarkista säännöllisesti: Review db.getUsers() tulostaa säännöllisesti ja poistaa tilit, joita ei enää tarvita.
Yhdessä nämä tavat varmistavat, että jokainen tili vastaa todellista tarvetta ja että pääsyä voidaan tracaina, kun tietoturvatarkastus tehdään.






