Python 如何保护我们的mongodb数据库?不改变我们的pymongo';MongoClient()和#x27;密码?
嗨,我有一个问题,我如何解决它,问题是我有一个python代码,它连接到我的本地主机上的mongodb数据库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
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
它可以与身份验证一起正常工作如果您启用了身份验证,则系统希望凭据能够进行身份验证。你在期待什么?忽略安全性?感谢评论,我已经做到了