2016-03-22 6 views
1

hallo ich ein Problem habe, wie kann ich es lösen, Problem ist, ich ein Python-Code haben, der wieWie sichern wir unsere mongodb-Datenbank? Ist es möglich ohne Änderung unseren Pymongo 'MongoClient()' Code?

from pymongo import MongoClient 
ip='localhost' 
class Authentication(): 

    def __init__(self): 
     try: 
      client = MongoClient(host=host,port=port) 
      db = client['Testdatabase'] 
      self.coll = db['testcollection'] 
      print 'database created successfully' 
     except Exception('database not created') as e: 
      print e 
    def insert_data(self,data): 
     if data: 
      self.coll.save(data) 

    def fetch_data(self): 
     results = self.coll.find({}) 
     if results: 
      for result in results: 
       print result       
    if __name__=='__main__': 
     data = {'id':483,'name':'anil.c','age':32} 
     auth = Authentication() 
     auth.insert_data(data)     
     auth.fetch_data() 

diese gut MongoDB Datenbank an meinem localhost verbinden arbeitet .... dann habe ich einen Benutzer auf mongodb admin mit username & password und enbelt autorisierung, danach meine datenbankverbindung nicht working warum? ich did'nt meinen MongoClient ändern:

client = MongoClient('mongodb://username:[email protected]') 

Ich brauche es, wie zum Beispiel:

client = MongoClient(host=host,port=port) 

mit Authentifizierung. Wenn jemand davon weiß, bitte geben Sie mir einen Vorschlag.

+1

wenn Sie die Authentifizierung aktiviert haben, erwartet Systemanmeldeinformationen gegen authentifizieren. Was erwarten Sie? Sicherheit ignorieren? – Saleem

+0

Dank Kommentar, ich habe es getan –

Antwort

1

dies ist sehr einfach, kiste Benutzer in Ihrem Admin wie folgt aus:

>use admin 
>db.createUser({user: "Admin",pwd: "localhost",roles: [ { role: "root", db: "admin" } ] }) 

Sie Benutzer erfolgreich hinzugefügt erhalten, nach der Änderung im Code machen wie:

from pymongo import MongoClient 
class Authentication(): 
    def __init__(self): 
     try: 
      password = urllib.quote_plus(MONGO['password']) 
      user = 'admin' 
      client = MongoClient('mongodb://'+user+':'+password+'@'+MONGO['host']) 
        db = client['Testdatabase'] 
        self.coll = db['testcollection'] 
        print 'database created successfully' 
       except Exception('database not created') as e: 
        print e 

gehen Mongo config file cd /etc/mongod.conf, bearbeite es, wenn du Version < verwendest 2.6 make 'auth = true' oder wenn mongo version> 3.0 authrisation: enabled speichere es und starte deinen monogd server neu wie:

$sudo service mongod start 

es funktioniert gut mit Authentifizierung

Verwandte Themen