2016-03-22 12 views
1

Merhaba, Sorunmongodb veritabanımızı nasıl güvenli hale getirebiliriz? Pymongo 'MongoClient()' kodumuz değişmeksizin mümkün mü? Ben bunu çözebilir nasıl bir sorun var

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() 

bu iyi çalışıyor gibi benim localhost veritabanını mongodb bağlanmak bir piton kodu var ise .... sonra ben bir kullanıcı oluşturduk kullanıcı adı & şifre ve enbeld yetkisi ile mongodb yönetici, bundan sonra veritabanı bağlantım neden wroking değil? Ben gibi ihtiyaç

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

: Ben benim MongoClient değiştirmek did'nt kimlik doğrulaması ile

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

. Eğer birisi bunu biliyorsa, bana öneri ver.

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 

Mongo gidin:

kullanıcı başarıyla eklendi alacak
>use admin 
>db.createUser({user: "Admin",pwd: "localhost",roles: [ { role: "root", db: "admin" } ] }) 

, sonra nasıl kodunuzda değişiklik yapmak: bu

+1

ile çalışıyor, sistem kimlik doğrulaması için kimlik bilgilerini beklemektedir. Ne bekliyorsun? Güvenliği görmezden mi geliyorsunuz? – Saleem

+0

Yorum yapabilmek için yaptım –

cevap

1

böyle yöneticiniz içinde sandık kullanıcı, çok basittir config dosyası 0/2.6 sürümünü kullanırsanız, 'auth = true' ya da mongo sürümü> 3.0 doğrulaması: etkin 'u kaydedin ve monogd sunucunuzu şu şekilde yeniden başlatın:

$sudo service mongod start 

Eğer kimlik doğrulaması etkin varsa o kimlik doğrulama