sql >> Databasteknik >  >> NoSQL >> MongoDB

skapa säker databas i mongodb

Från Mongo Java Tutorial

MongoDB kan köras i ett säkert läge där åtkomst till databaser styrs genom namn- och lösenordsautentisering. När den körs i det här läget måste alla klientprogram ange ett namn och lösenord innan några åtgärder utförs. I Java-drivrutinen gör du helt enkelt följande med det anslutna mongoobjektet :

boolean auth = db.authenticate(myUserName, myPassword);

Om namnet och lösenordet är giltiga för databasen kommer autentisering att vara sant. Annars blir det falskt. Du bör titta på MongoDB-loggen för ytterligare information om tillgänglig.

De flesta användare kör MongoDB utan autentisering i en pålitlig miljö.

Konfigurera autentisering och säkerhet

Autentisering lagras i varje databas system.users-samling. Till exempel i en databas projectx kommer projectx.system.users att innehålla användarinformation.

Vi bör först konfigurera en administratörsanvändare för hela db-serverprocessen. Denna användare lagras under den speciella admindatabasen.

Om inga användare är konfigurerade i admin.system.users kan man komma åt databasen från localhost-gränssnittet utan autentisering. Alltså, från servern som kör databasen (och därmed på localhost), kör databasskalet och konfigurera en administrativ användare:

$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")

Vi har nu en användare skapad för databasadministratör. Observera att om vi inte tidigare har autentiserats måste vi nu göra det om vi vill utföra ytterligare operationer, eftersom det finns en användare i admin.system.users.

> db.auth("theadmin", "anadminpassword")

Vi kan se befintliga användare för databasen med kommandot:

> db.system.users.find()

Låt oss nu konfigurera en "vanlig" användare för en annan databas.

> use projectx
> db.addUser("joe", "passwordForJoe")

Slutligen, låt oss lägga till en skrivskyddad användare. (stöds endast i 1.3.2+)

> use projectx
> db.addUser("guest", "passwordForGuest", true)


  1. Använd MongoEngine och PyMongo tillsammans

  2. Go JSON-avkodning är mycket långsam. Vad skulle vara ett bättre sätt att göra det?

  3. Meteor MongoDB hitta / hämta problem

  4. MongoDB-aggregationsjämförelse:group(), $group och MapReduce