MongoDB账户管理

MongoDB账户管理

1.角色

角色权限描述
read可以读取指定数据库中任何数据
readWrite可以读写指定数据库中任何数据,包括创建、重命名、删除集合
readAnyDatabase可以读取所有数据库中任何数据(除了数据库config和local之外)
readWriteAnyDatabase可以读写所有数据库中任何数据(除了数据库config和local之外)
userAdminAnyDatabase可以在指定数据库创建和修改用户(除了数据库config和local之外)。
dbAdminAnyDatabase可以读取任何数据库以及对数据库进行清理、修改、压缩、获取统计信息、执行
检查等操作(除了数据库config和local之外)。
dbAdmin可以读取指定数据库以及对数据库进行清理、修改、压缩、获取统计信息、执行
检查等操作
userAdmin可以在指定数据库创建和修改用户
clusterAdmin可以对整个集群或数据库系统进行管理操作
backup备份MongoDB数据最小的权限
restore从备份文件中还原恢复MongoDB数据(除了system.profile集合)的权限
root超级账号,超级权限

2.账户

1.创建

创建系统的管理员(root角色)的账户

#切换到admin库
> use admin
switched to db admin
#创建账户
> db.createUser(
    {
     	user:"root",
        pwd:"123456",
        roles:["root"]
    }
)


#或者不切换admin库,在创建账户的时候指定admin库也行
> db.createUser({user:"root2",pwd:"123456",roles:[{"role":"root","db":"admin"}]})


创建admin库的管理员,专门用来管理用户

> db.createUser({user:"admin",pwd:"123456",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]})
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

2.查看

db.system.users.find()

3.修改密码

db.changeUserPassword("root2","000000")

4.删除

> db.dropUser("root2")
true

提示:

1)本案例创建了两个用户,分别对应超管和专门用来管理用户的角色,事实上,你只需要一个用户即可。如果你对安全要求很高,防止超管泄漏,则不要创建超管用户。

2)和其它数据库(MySQL)一样,权限的管理都差不多一样,也是将用户和权限信息保存到数据库对应的表中。Mongodb存储所有的用户信息在admin数据库的集合system.users中,保存用户名、密码和数据库信息。

3)如果不指定数据库,则创建的指定的权限的用户在所有的数据库上有效,如{role:“userAdminAnyDatabase”,db:""}

3.认证

sudo vim /etc/mongod.conf

#security:

#operationProfiling:

修改如下:

security:
  authorization: enabled

#operationProfiling:

sudo systemctl restart mongod.service

验证:

yantao@ubuntu18:~$ mongo
MongoDB shell version v4.2.15
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("e2eae586-2be2-42c4-8c58-b8ae741e6c1c") }
MongoDB server version: 4.2.15
> use admin
switched to db admin
> show dbs	#不认证用户,无法看到数据库
> db.auth("myroot","123456")	#认证成功
1
> show dbs		#现在可以看到数据库了
admin      0.000GB
articledb  0.000GB
config     0.000GB
local      0.000GB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值