3-开启安全认证
开启安全认证
一.先建立管理员用户
1.连接到数据库,选择admin数据库
use admin
2.创建管理员账户
db.createUser({ user: "useradmin", pwd: "pwdadmin", roles: [{ role: "userAdminAnyDatabase", db: "admin" }]})
管理员db必须为admin
mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。
3.验证用户添加是否成功
db.auth("useradmin", "pwdadmin") 如果返回1,则表示成功。
db.auth()方法理解为 用户的验证功能
二.修改配置文件
1.先关闭MongoDB服务
2.打开mongod.cfg,添加
security:
authorization: enabled
3.重启服务
三.使用mongo shell登录
1.命令行输入:
mongodb://127.0.0.1:27017/admin?directConnection=false
2.登录用户
db.auth("root","root")
该命令也可用作检查用户创建完成;
3.在admin数据库下查询用户:
db.system.users.find()
四.Python代码连接MongoDB
from urllib.parse import quote
import pymongo
# URL编码解决特殊符号编码问题
mo_url = "mongodb://{}:{}@{}".format(quote('admin'), quote('password'), '127.0.0.1')
conn = pymongo.MongoClient(mo_url)
五.mongodb密码特殊字符的解决方法
对@使用16进制进行URL编码:%40
对:使用16进制进行URL编码:%3A(空格)
用上面16进制的URL编码代替原本的字符就行了

浙公网安备 33010602011771号