Python 如何保护我们的mongodb数据库?不改变我们的pymongo';MongoClient()和#x27;密码?

Python 如何保护我们的mongodb数据库?不改变我们的pymongo';MongoClient()和#x27;密码?,python,mongodb,localhost,admin,database,Python,Mongodb,Localhost,Admin,Database,嗨,我有一个问题,我如何解决它,问题是我有一个python代码,它连接到我的本地主机上的mongodb数据库 from pymongo import MongoClient ip='localhost' class Authentication(): def __init__(self): try: client = MongoClient(host=host,port=port) db = client['Tes

嗨,我有一个问题,我如何解决它,问题是我有一个python代码,它连接到我的本地主机上的mongodb数据库

    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()
这很有效。。。。 然后我在mongodb admin上创建了一个用户名和密码以及enbeld身份验证的用户,之后我的数据库连接没有写入为什么? 我没有将我的MongoClient更改为:

client = MongoClient('mongodb://username:password@127.0.0.1')
我需要它,就像:

client = MongoClient(host=host,port=port)
使用身份验证。
如果有人知道这件事,请给我建议

这是非常简单的,在您的管理员中对用户进行如下分类:

>use admin
>db.createUser({user: "Admin",pwd: "localhost",roles: [ { role: "root", db: "admin" } ] })
在对代码进行如下修改后,您将成功添加用户:

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
如果您使用的是版本3.0 Authorization:enabled,请转到mongo配置文件cd/etc/mongod.conf,对其进行编辑 保存并重新启动monogd服务器,如下所示:

$sudo service mongod start

它可以与身份验证一起正常工作

如果您启用了身份验证,则系统希望凭据能够进行身份验证。你在期待什么?忽略安全性?感谢评论,我已经做到了