简介

用户rpm包安装的mongo数据库,是没有用户权限认证的,这样非常的不安全,攻击者使用特定的脚本就能连上你的mongo数据库,并将数据进行加密,并给你留勒索信息

如果你的数据非常重要,你将会付出惨重的代价,要么花很长的时间去恢复数据,前提是你有备份,并且还不能保证完全恢复,要么给攻击者付酬金。所以重要的数据库一定要设置用户认证,保证数据安全。说到mongo的用户认证,就不得不提其内部设置的用户角色,其角色分为以下几种

MongoDB角色介绍

1.Database User Roles(普通用户角色):read(非系统数据库只读),readWrite(非系统数据库读写)

2.Database Administration Roles(数据库管理员角色):dbAdmin,dbOwner,userAdmin

3.Cluster Administration Roles(集群管理管角色):clusterAdmin,clusterManager,clusterMonitor,hostManager

4.Backup and Restoration Roles(备份恢复角色):backup,restore

5.All-Database Roles(系统和非系统管理员角色):readAnyDatabase,readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase

6.Superuser Roles(超级管理员角色):root

那每个角色有什么权限,这里给大家详细介绍一下,为安全起见,赋权的时候,一定要最小范围赋权,不要给普通应用访问用户赋管理员角色或者超级管理员角色,这样做就会非常的不安全。

MongoDB角色创建命令

1.创建超级管理员用户


db.createUser({user:'root',pwd:'123456',roles:['root']}) Successfully added user: { "user" : "root", "roles" : [ "root" ] }

2.查看创建的用户


db.system.users.find();

3.创建普通用户,有testdb数据库readWrite的权限


db.createUser({user:'jim',pwd:'jim123456',roles:[{role:'readWrite',db:'testdb'}]})

默认mongo是没有用户认证的,如果要想让用户认证生效,需要重启mongo数据库实例 先关闭实例 mongod --shutdown -f /etc/mongod.conf 再加--auth启动实例 mongod --auth --fork -f /etc/mongod.conf

测试一下效果


[root@~]# mongo
MongoDB shell version v4.2.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("709083d5-fe98-4b21-919d-7ffce4ced0e5") }
MongoDB server version: 4.2.2
> show dbs;
> show collections;
Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus

不用输入用户名和密码,对mongo数据库已经做不了任何操作了。用刚才创建的新用户登录测试一下,看看效果


[root@~]# mongo -u jim -p jim123456
MongoDB shell version v4.2.2
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a1e8fbdb-8870-46a1-ae80-b97448c37db2") }
MongoDB server version: 4.2.2
> show dbs;
testdb  0.000GB
> use testdb;
switched to db testdb
> show collections;
t_1
test
testdb

关注 1.如果您喜欢这篇文章,请点赞+转发。

2.如果您特别喜欢,请加关注。