MongoDB权限机制
明确需求
我们在DOS窗口直接输入命令就可以登录数据库
这在实战工作中绝对不允许
思考:如何解决
回答:使用权限机制,开启验证模式即可
语法
创建账号
1 |
|
角色
1 |
|
开启验证模式
概念
指用户需要输入账号密码才能登录使用
操作步骤
1 |
|
步骤1:添加超级管理员
1 |
|
注意:2.x 3.x 4.x前面版本默认是看不到admin ,直接选中即可
步骤2:退出卸载服务
1 |
|
步骤3:安装需要身份验证的MongoDB服务
1 |
|
步骤4:启动服务->登录测试
通过超级管理员账号登录
语法:mongo 服务器ip地址:端口/数据库 -u 用户名 -p 密码
语法2:a-先登录,b-选择数据库,c-输入db.auth(用户名,密码)
练习
需求
- 添加用户shop1可以读shop数据库
- 添加用户shop2可以读写shop数据库
- 注意:必须在对应数据库创建用户
准备:创建测试数据和测试用户(注意:选择shop仓库创建用户)
1
2
3
4use shop
for(var i=1;i<=10;i++){
db.goods.insert({"name":"goodsName"+i,"price":i});
}添加用户并设置权限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21//切记
use shop
//shop1
db.createUser({
"user":"shop1",
"pwd":"admin888",
"roles":[{
role:"read",
db:"shop"
}]
})
//shop2
db.createUser({
"user":"shop2",
"pwd":"admin888",
"roles":[{
role:"readWrite",
db:"shop"
}]
})验证:shop1可读
验证:shop2可读可写
MongoDB权限机制
https://blog-theta-ten.vercel.app/2021/06/21/MongoDB权限机制/