JAVA全系列 教程
3762个小节阅读:7089.6k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
MongoDB 默认是没有账号的,可以直接连接,无须身份验证。实际项目中肯定是要权限验证的,否则后果不堪设想。从2016年开始发生了多起MongoDB黑客赎金事件,大部分MongoDB安全问题暴露出的短板其实是用户的安全意识不足,首先用户对于数据库的安全不重视,其次用户在使用过程中可能没有养成定期备份的好习惯,最后是企业可能缺乏有经验和技术的专业人员。所以对MongoDB进行安全认证是必须要做的。
以auth方式启动MongoDB
xxxxxxxxxx
docker run -itd --name mongo5 -p 27017:27017 mongo:xxx --auth
备份数据
xxxxxxxxxx
mongodump -h 127.0.0.1:27017 -d mydb -o /usr/local
恢复数据(在用户认证之后)
xxxxxxxxxx
mongorestore -h localhost -u root -p 123456 --db mydb /dump/mydb --authenticationDatabase admin
进入容器内的mongo终端,切换到admin库添加用户,修改密码,验证用户以及删除用户
用于创建 MongoDB 登录用户以及分配权限的方法
xxxxxxxxxx
use admin;
db.createUser(
{
user: "账号",
pwd: "密码",
roles: [
{ role: "角色", db: "安全认证的数据库" },
{ role: "角色", db: "安全认证的数据库" }
]
}
)
user:创建的用户名称,如 admin、root 、zhangsan pwd:用户登录的密码 roles:为用户分配的角色,不同的角色拥有不同的权限,参数是数组,可以同时设置多个 role:角色,MongoDB 已经约定好的角色,不同的角色对应不同的权限 后面会对role做详细解释 db:数据库实例名称,如 MongoDB 默认自带的有 admin、local、config、test 等,即为哪个数据库实例设置用户
例如:
xxxxxxxxxx
db.createUser(
{
user:"root",
pwd:"123321",
roles:[{role:"root",db:"admin"}]
}
)
修改密码
xxxxxxxxxx
db.changeUserPassword( 'root' , '123456' );
添加角色
xxxxxxxxxx
db.grantRolesToUser('用户名',[{ role:'角色名', db:'数据库名'}])
验证用户
db.auth("账号","密码"),返回 1 说明认证成功
删除用户
db.dropUser("用户名")
1.MongoDB认证用户命令是
A db.createUser('username','password')
B db.auth('username','password')
C db.grantRolesToUser('username,[{ role:'rolename', db:'database'}])
D 以上都不对
答案
1=>B