mongo密码的设置
- MongoDB 版本 v4.0.7
- 系统 Win10
注意:
要为数据库创建用户,必须先切换到相应的数据库:
要为数据库创建用户,必须先切换到相应的数据库:
要为数据库创建用户,必须先切换到相应的数据库:
#先切换 use 数据库名; #再创建 db.createUser({})
超级管理员
设置 admin(给admin这个库在设置密码)
use.admin db.createUser({ user: 'admin', // 用户名 pwd: '123456', // 密码 roles:[{ role: 'root', // 角色 db: 'admin' // 数据库 }] })
设置完成,可以输入 show users
查看是否设置成功。
开启验证
找到 MongoDB 安装目录,打开mongodb.conf文件,找到以下这句
authu=true
重启 MongoDB
kill -9 mongo进程号
./mongod -f mongodb.conf
或者:
关闭 mongod --journal --shutdown -f /usr/local/mongodb/bin/mongodb.conf 启动 mongod --journal -f /usr/local/mongodb/bin/mongodb.conf
任务管理器界面
找到 MongoDB 服务,右键重新启动。
这时,我们可以打开 powershell 连接数据库:
输入 mongo:

显示连接成功,但是当我们输入其他指令时,不会提示没有权限,但是不会执行:
登录数据库
// 方式一 mongo use admin db.auth('admin', '123456') // 方式二 mongo admin -u admin -p 123456
这时候我们就可以正常访问和操作数据了。
添加数据库用户
我们除了可以设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。
use test // 跳转到需要添加用户的数据库
db.createUser({
user: 'mts', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'readWrite', // 角色
db: 'qidatas' // 数据库名
}]
})
常用命令
show users // 查看当前库下的用户 db.dropUser('testadmin') // 删除用户 db.updateUser('admin', {pwd: '654321'}) // 修改用户密码 db.auth('admin', '654321') // 密码认证
MongoDB 数据库默认角色
数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
超级用户角色:root
pymongo连接需要认证的mongo
import pymongo import random db_mongo_attr = { 'host': 'xx.xx.xx.xx', 'port': 27017, 'database': 'qidatas', 'username': 'mts', 'password': '123456' } def db_conn(**kargs): """ :return:pymongodb db级别的实例 """ dbs = pymongo.MongoClient(kargs['host'], kargs['port'], ) # dbs = pymongo.MongoClient("mongodb://user:pass@ip:port/databasename") db = dbs[kargs['database']] db.authenticate(kargs['username'], kargs['password']) return db db = db_conn(**db_mongo_attr) col=db['20200624'] name_list = ['衬衣', '裤子', '鞋子', '帽子'] size_list = ['S', 'M', 'L', 'XL'] price_list = [100, 200, 300, 600, 800] for i in range(10): random_ = random.randint(2, 4) col.insert_one({ 'name': random.choice(name_list), 'size': random.sample(size_list, random_), 'price': random.sample(price_list, random_) })
要注意的是mongodb的用户是与数据库一体的,所以是在数据库级别进行用户权限验证。
二.注意点
1.不管是有加密码认证还是没有加密码认证的库只有库里面的没有集合或者集合是空的,在数据库列表都不会显示该数据库 2.数据库加了密码认证之后,新建数据库,必须先切换到admin这个数据库,进行认证后才能创建集合创建库,而当库是空的,或者库里面的所有集合都是空的,
则该库不会显示在该库列表中
步骤:
1. 用管理员账号,密码登录数据库,或者等登录数据库后,切换到admin这个库,然后进行管理员身份验证,db.auth('adminName',"adminPassword")
2. use dataName #创建新的库名
3.db.createUser({user:"cc",pwd:"cc777",roles:[{role:"dbOwner",db:"dataname"}]}) #为新库设置密码和角色
4. 退出控制台,用新的账号密码登录:mongo -u username -p password dbname(如果这边指定的是新的库,新的库对应的账号密码,就不用第五步)
5. 切换到刚才新建的数据库,db.auth("新数据库用户名", "新数据库密码" )
6. db。collectionName.insert({'1':1}) #随便指定集合,插入数据,要不然集合是空的,是不会把空的库展现在库列表中
3.在Gui中想创建辛苦,就直接指定认证的库为admin,admin的账号,密码就行,用其他的库认证的连接可以创建新的库,但是不能创建新的集合,相当于不能创建新的库,
因为mongo的库认证对应的是到每一个库当中的,而不是整个mongo库对应一个账户密码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
2019-01-04 django模型层之多表操作 增删改查