Hoe u een gebruiker maakt en een rol toevoegt MongoDB

โšก Slimme samenvatting

Een gebruiker aanmaken en een rol toevoegen in MongoDB Het maakt gebruik van de db.createUser()-methode om referenties te definiรซren, ingebouwde rollen toe te wijzen en privileges te beperken tot specifieke databases, waardoor de toegangscontrole voor beheerdersaccounts en accounts voor รฉรฉn database wordt versterkt.

  • ๐Ÿ”‘ Kernmethode: De opdracht db.createUser() maakt een account aan door de gebruiker, het wachtwoord en een array met rollen in รฉรฉn enkele instructie op te geven.
  • ๐Ÿ›ก๏ธ Beheerdersbevoegdheden: De rol userAdminAnyDatabase verleent beheerrechten over alle databases, terwijl userAdmin de controle beperkt tot รฉรฉn specifieke database.
  • ๐ŸŽฏ Roltoewijzing: Ingebouwde rollen zoals 'lezen' en 'lezen en schrijven' komen precies overeen met de acties die een gebruiker op een verzameling kan uitvoeren.
  • ๐Ÿ‘ฅ Meerdere databases: Eรฉn account kan verschillende rollen vervullen in meerdere databases binnen รฉรฉn rollenarray.
  • โœ… Verificatie: De methode db.getUsers() en de geretourneerde uitvoer bevestigen dat accounts en privileges correct zijn aangemaakt.

Hoe maak je een gebruiker aan en voeg je een rol toe? MongoDB

Wat zijn ingebouwde rollen in MongoDB?

Voordat je een account aanmaakt, is het handig om de ingebouwde rollen te begrijpen. MongoDB Een rol is een benoemde verzameling van privileges, waarbij elk privilege een bron (een database of verzameling) koppelt aan de acties die erop zijn toegestaan. Het toewijzen van een rol tijdens het aanmaken van een gebruiker bepaalt dus precies wat dat account kan doen.

MongoDB Het systeem groepeert zijn ingebouwde rollen in databasegebruikersrollen, databasebeheerrollen, clusterbeheerrollen, back-up- en herstelrollen en supergebruikersrollen. De onderstaande tabel geeft een overzicht van de rollen die het vaakst worden gebruikt bij het beheren van gebruikers:

Rol Categorie Verleende privileges
dit artikel lezen Databasegebruiker Alleen-leestoegang tot alle niet-systeemcollecties in een database.
lezenSchrijven Databasegebruiker Leesrechten plus invoeg-, update- en verwijderrechten voor collecties.
dbAdmin Databasebeheerder Schema-, indexerings- en statistiekbeheer voor een database.
gebruikersbeheerder Databasebeheerder Gebruikers en rollen aanmaken en wijzigen in รฉรฉn enkele database.
gebruikerAdminAnyDatabase superuser Gebruikersbeheer voor alle databases in de instantie.
wortel superuser Volledige toegang tot alle middelen en processen.

MongoDB Beheerdergebruiker aanmaken

Een gebruikersbeheerder aanmaken in MongoDB wordt gedaan met behulp van de createUser-methode. Het volgende voorbeeld laat zien hoe dit kan worden gedaan.

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

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

MongoDB Beheerdergebruiker aanmaken

Code Uitleg:

  1. De eerste stap is het specificeren van de โ€œgebruikersnaamโ€ en het โ€œwachtwoordโ€ die moeten worden aangemaakt.
  2. De tweede stap is het toewijzen van een rol aan de gebruiker. Omdat het een databasebeheerder moet zijn, hebben we de rol "userAdminAnyDatabase" toegewezen. Deze rol geeft de gebruiker beheerdersrechten voor alle databases in de database. MongoDB.
  3. De parameter db specificeert de beheerdersdatabase, een speciale metadatabase binnen MongoDB die de informatie voor deze gebruiker bevat.

Als de opdracht succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven:

Output:

MongoDB Beheerdergebruiker aanmaken

De uitvoer laat zien dat een gebruiker genaamd "Guru"99" is aangemaakt en die gebruiker heeft privileges over alle databases in MongoDB.

MongoDB Gebruiker maken voor รฉรฉn database

Om een โ€‹โ€‹gebruiker aan te maken die รฉรฉn enkele database beheert, kunnen we hetzelfde commando gebruiken als hierboven vermeld, maar we hoeven alleen de optie "userAdmin" te gebruiken.

Het volgende voorbeeld laat zien hoe dit gedaan kan worden:

MongoDB Gebruiker maken voor รฉรฉn database

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

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

Code Uitleg:

  1. De eerste stap is het specificeren van de โ€œgebruikersnaamโ€ en het โ€œwachtwoordโ€ die moeten worden aangemaakt.
  2. De tweede stap is het toewijzen van een rol aan de gebruiker. In dit geval, aangezien het een databasebeheerder moet zijn, wordt de rol "userAdmin" toegewezen. Deze rol geeft de gebruiker alleen beheerdersrechten voor de database die is gespecificeerd in de db-optie.
  3. De parameter db specificeert de database waarvoor de gebruiker beheerdersrechten moet hebben.

Als de opdracht succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven:

Output:

MongoDB Gebruiker maken voor รฉรฉn database

Uit de uitvoer blijkt dat er een gebruiker met de naam โ€œEmployeeadminโ€ is aangemaakt en dat die gebruiker alleen bevoegdheden heeft voor de database โ€œEmployeeโ€.

Gebruikers beheren

Begrijp eerst welke rollen je moet definiรซren. Er is een hele lijst met rollen beschikbaar in MongoDBZo is er bijvoorbeeld de rol 'lezen', die alleen leesrechten tot databases verleent, en de rol 'lezen en schrijven', die lees- en schrijfrechten tot de database biedt. Dit betekent dat de gebruiker invoeg-, verwijder- en updateopdrachten kan uitvoeren op collecties in die database.

Gebruikers beheren

db.createUser(
{
	user: "Mohan",

	pwd: "password",

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

Het bovenstaande codefragment laat zien dat een gebruiker genaamd Mohan wordt aangemaakt en dat hem meerdere rollen in meerdere databases worden toegewezen. In het bovenstaande voorbeeld krijgt hij alleen leesrechten voor de database "Marketing" en lees- en schrijfrechten voor de database "Sales".

Hoe u informatie kunt bekijken en beheren MongoDB Gebruikers

Nadat er accounts bestaan, MongoDB biedt een reeks opdrachten om ze te inspecteren, bij te werken en te verwijderen zonder ze te laten vallen.ping en het opnieuw aanmaken van elke gebruiker. Deze opdrachten worden uitgevoerd op de database waarin de gebruiker is aangemaakt, dus schakel over naar de juiste database met de `use`-instructie voordat u ze uitvoert.

De meest voorkomende gebruikersbeheeropdrachten zijn:

  • db.getUsers() โ€” geeft een overzicht van alle gebruikers die in de huidige database zijn gedefinieerd, samen met de rollen die elk van hen heeft.
  • db.getUser(โ€œgebruikersnaamโ€) โ€” Geeft de details van een enkel account weer, wat handig is voor het controleren van toegangsrechten.
  • db.grantRolesToUser() โ€” voegt een of meer rollen toe aan een bestaande gebruiker zonder de huidige rollen te beรฏnvloeden.
  • db.revokeRolesFromUser() โ€” verwijdert specifieke rollen en beperkt de toegang wanneer verantwoordelijkheden veranderen.
  • db.changeUserPassword() โ€” reset het wachtwoord voor een account terwijl het account behouden blijftping De rollen blijven intact.
  • db.dropUser() โ€” Hiermee wordt een gebruiker permanent uit de database verwijderd.

Het onderstaande voorbeeld kent een extra rol toe, trekt een andere rol in, reset een wachtwoord en verwijdert ten slotte het account:

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

Door db.getUsers() na deze bewerkingen opnieuw uit te voeren, wordt bevestigd dat de wijzigingen zijn doorgevoerd en dat alleen de beoogde accounts en rollen overblijven.

Beste praktijken voor MongoDB user management

Goed geplande gebruikersaccounts zorgen voor een MongoDB Een veilige en eenvoudig te controleren implementatie. De volgende werkwijzen verkleinen het risico op onbedoelde datalekken en misbruik van bevoegdheden:

  • Pas de minste privileges toe: Wijs alleen de rollen toe die een account daadwerkelijk nodig heeft, waarbij lees- en schrijfrechten voor รฉรฉn enkele database de voorkeur krijgen boven brede beheerdersrollen.
  • Vermijd root-toegang in productieomgevingen: Reserveer de rollen root en userAdminAnyDatabase voor installatie- en noodtaken, en niet voor dagelijkse werkzaamheden.
  • Authenticatie inschakelen: Start de server met de optie โ€“auth zodat de authenticatie daadwerkelijk wordt afgedwongen.
  • Gebruik sterke wachtwoorden: Combineer lengte en complexiteit en roteer wachtwoorden volgens een schema met db.changeUserPassword().
  • Regelmatig controleren: RevBekijk periodiek de uitvoer van db.getUsers() en verwijder accounts die niet langer nodig zijn.

Deze werkwijzen zorgen er gezamenlijk voor dat elk account aansluit op een reรซle behoefte en dat toegang mogelijk is. traced telkens wanneer er een beveiligingscontrole plaatsvindt.

Veelgestelde vragen

Ja. AI-assistenten kunnen een eenvoudige beschrijving omzetten in een geldig db.createUser()-commando, de juiste rollenarray toewijzen en het commando koppelen aan een database. Test het gegenereerde commando altijd eerst op een niet-productiedatabase voordat u het uitvoert.

Ja. Door AI aangedreven audittools kunnen de output van db.getUsers() lezen, accounts markeren die root- of userAdminAnyDatabase-rechten hebben, en rollen met minimale privileges voorstellen. Beheerders moeten elke aanbeveling echter nog steeds beoordelen voordat ze de toegang in een live systeem intrekken.

De rol userAdmin beheert gebruikers en rollen in รฉรฉn specifieke database, terwijl userAdminAnyDatabase gebruikersbeheerrechten verleent voor alle databases in de instantie. Gebruik userAdmin voor beperkt beheer en userAdminAnyDatabase alleen voor vertrouwde beheerders.

Schakel met het commando `use` over naar de database waarin de gebruiker bestaat en voer vervolgens `db.dropUser("gebruikersnaam")` uit. MongoDB Verwijdert het account en de bijbehorende rollen in die database. Bevestig de verwijdering door daarna db.getUsers() uit te voeren.

Vat dit bericht samen met: