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ä.

  • 🔑 Ydinmenetelmä: db.createUser()-komento luo tilin määrittämällä käyttäjän, salasanan ja roolitaulukon yhdessä lausekkeessa.
  • 🛡️ Ylläpitäjän laajuus: userAdminAnyDatabase-rooli myöntää hallintaoikeudet kaikkiin tietokantoihin, kun taas userAdmin rajoittaa hallinnan yhteen nimettyyn tietokantaan.
  • 🎯 Roolijako: Sisäänrakennetut roolit, kuten read ja readWrite, kuvaavat tarkasti toimintoja, joita käyttäjä voi suorittaa kokoelmalle.
  • 👥 Useita tietokantoja: Yksi tili voi sisältää eri rooleja useissa tietokannoissa yhden roolitaulukon sisällä.
  • Todentaminen: db.getUsers()-metodi ja palautettu tuloste vahvistavat, että tilit ja käyttöoikeudet on määritetty oikein.

Käyttäjän luominen ja roolin lisääminen MongoDB

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"}]})

MongoDB Luo järjestelmänvalvojan käyttäjä

Code Selitys:

  1. Ensimmäinen askel on määrittää "käyttäjänimi" ja "salasana", jotka on luotava.
  2. 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.
  3. 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ö:

MongoDB Luo järjestelmänvalvojan käyttäjä

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ä:

MongoDB Luo käyttäjä yhdelle tietokannalle

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

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

Code Selitys:

  1. Ensimmäinen askel on määrittää "käyttäjänimi" ja "salasana", jotka on luotava.
  2. 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.
  3. 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ö:

MongoDB Luo käyttäjä yhdelle tietokannalle

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.

Käyttäjien hallinta

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.

UKK

Kyllä. Tekoälyavustajat voivat muuttaa pelkän kuvauksen kelvolliseksi db.createUser()-komennoksi, määrittää oikeat roolitaulukot ja laajenna sen tietokantaan. Testaa aina luotu komento ei-tuotantotietokannassa ennen sen suorittamista.

Kyllä. Tekoälypohjaiset auditointityökalut voivat lukea db.getUsers()-funktion tulostetta, merkitä pääkäyttäjän tai userAdminAnyDatabase-käyttäjän tilejä ja ehdottaa vähiten oikeuksia omaavia rooleja. Järjestelmänvalvojien tulisi silti tarkistaa jokainen suositus ennen käyttöoikeuksien peruuttamista live-järjestelmässä.

userAdmin-rooli hallinnoi käyttäjiä ja rooleja yhdessä tietyssä tietokannassa, kun taas userAdminAnyDatabase myöntää käyttäjien hallintaoikeudet kaikkiin instanssin tietokantoihin. Käytä userAdmin-roolia rajattuun hallintaan ja userAdminAnyDatabase-roolia vain luotettaville järjestelmänvalvojille.

Vaihda käyttäjätietokantaan käyttämällä use-komentoa ja suorita sitten db.dropUser("käyttäjänimi"). MongoDB poistaa tilin ja sen roolit kyseisestä tietokannasta. Vahvista poisto suorittamalla sen jälkeen db.getUsers().

Tiivistä tämä viesti seuraavasti: