mongodb安装之后默认是没有用户和密码的,可以容易的接入,但是真实使用中肯定不会是这样的,需要有用户验证,研究了好久,记录一下:
mongo shell 添加用户:
有2种方式可以启动mongo的权限认证
1.直接输入命令(仅当前启动有效)
sudo mongod -auth
2.修改/etc/mongo.conf,增添以下内容
security:
authorization: enabled
创建管理员
-
创建超级管理员
use admin db.createUser({"user":"python","pwd":"python","roles":["root"]})
-
创建普通管理员
use admin db.createUser({"user":"python1", "pwd":"python1", roles:[{"role":"read","db":"dbname1"},{"role":"readWrite","db":"dbname2"} ]})
登陆认证(需要use admin后认证)
use admin
db.auth('python','python')
查看所有用户
show users
删除用户
db.dropUser('python')
python连接mongodb:
首先安装pymongo库
pip install pymongo
from pymongo import MongoClient()
连接方式:
- 默认client = MongoClient()
- 通过host+port的方式:client = MongoClient(host,port)
- 通过uri的方式:client = MongoClient(uri)
uri的格式:
uri = 'mongodb://' + user + ':' + pwd + '@' + server + ':' + port +'/'+ db_name
获取数据库名
db = client.getdatabase(db_name)
写入数据:
db.collect_name.insert_by(data)
查询数据:
db.collect_name.find(filter)