MongoBD安全架构:认证鉴权审计加密
MongoDB 用户认证方式

MongoDB 集群节点认证

传输加密

落盘加密

字段级加密


https://docs.mongodb.com/v4.2/core/security-client-side-encryption/
https://docs.mongodb.com/v4.2/core/security-explicit-client-side-encryption/
审计
企业版功能


MongoDB 鉴权 – 基于角色的权限机制
• MongoDB 授权基于角色的权限控制,不同的权限的用户对数据库的操作不同
• 例如 DBA 可以创建用户;应用开发者可以插入数据;报表开发者可以读取数据。
![]()
MongoDB提供了10几种内置的角色
https://docs.mongodb.com/manual/reference/built-in-roles/
https://blog.csdn.net/xixingzhe2/article/details/82826173
自定义角色db.createRole

对sampledb库里的表可以读,对sampledb库里的sample表可做update操作
定义角色,要起作用还要绑定在用户上
具备用户管理权限的用户进行创建
roles继承权限
接下来简单实践下MongoDB鉴权
docker run --name m1 -p 27017:27017 -d mongo --auth
docker exec -it m1 bash
mongo
db.test.insert({count:1})//发现失败没有权限
use admin;
db.createUser({
... user:"test",
... pwd:"123456",
... roles:["userAdminAnyDatabase"]
... })//创建超级管理员
mongo -u "test" -p "123456" --authenticationDatabase "admin"
//authenticationDatabase 验证登录的数据库,不是在默认的test库创建就需要加上
use admin
db.auth("test","123456")//为1则为用户校验成功
db.createUser(
... {
... user: "db",
... pwd: "123",
... roles: [ { role: "readWrite", db: "test" } ]
... }
... )
db.auth("db","123")//切换用户
use test
db.test.insert({count:1})//数据插入成功
![]()
![]()
![]()
参考:极客时间MongoDB高手课
网友评论