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编码代替原本的字符就行了
posted @ 2024-06-11 14:10  3088577529  阅读(21)  评论(0)    收藏  举报