9 mongodb 权限机制
创建时间:2023-02-07 14:01
长度:1021
浏览:0
评论:0
从开始学习到现在,我们都是直接用终端输入命令,就可以直接进入数据库,这样是非常不安全的!ps:在mac使用sudo命令还是需要密码的,但生产环境中,还是需要使用到权限机制的;
创建数据库账号
db.createUser({
user: "账号名",
pwd: "密码",
roles: {
role: "角色",
db: "所属数据库",
}
})
角色种类
超级用户角色:root
数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
角色说明
root:只在admin数据库中可用。超级账号,超级权限;
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
开启验证模式
什么是?
指用户需要输入账号密码才能登录使用
操作步骤
1. 添加超级管理员
2.退出卸载服务
3.重新安装需要输入账号密码的服务(在原安装命令基础上加上 --auth即可)
4.启动服务
5. 登录测试
# 步骤1: 添加超级管理员
use admin
db.createUser({
user: "admin",
pwd: "admin888",
roles: {
role: "root",
db: "admin",
}
})
// 查看是否成功 db.集合名.find();
db.system.users.find().pretty();
# 步骤2:退出卸载服务
# 在安装目录下有个bin目录,然后
# 在window下,doc窗口必须用户管理员身份运行
mongod --remove
// 步骤4:
# mongo IP:端口/数据库 -u 用户名 -p 密码
mongo 127.0.0.1:27017/admin -u admin -p admin888
第二种:
use admin;
db.auth("admin", "admin888");