MongoDB Compass创建使用账号以及为数据库创建使用账

2021-01-04  本文已影响0人  iOS丶Michelle
说明

MongoDB Compass 可视化工具,这个可视化软件其实就是显示了你这个admin数据库下所有可以登录MongoDB Compass的账号,如果你用blog数据库的账号来登录是不会成功的

blog数据库说明

这个blog数据库是node.js服务器搭建,使用集合来创建的,这里不说代码的实现,意思就是执行你写的app.js这里就会有这个数据库

MongoDB Compass创建使用账号啥意思呢

首先切换到admin这个数据库

use admin

在命令行登录超级管理员账号,不登录就不能查看所有用户的信息,也不能创建

db.auth('root','123456')

在admin这个数据库创建一个账号,只能对blog数据库有读写权限

db.createUser({user:'mg2',pwd:'123456',roles:[{role:'readWrite',db:'blog'}]})

验证一下是否创建成功,查看所有用户的信息

show users

如下图所示,有两个账号,一个root,一个mg2,他们的权限是不同的,root拥有所有的权限,而mg2呢只能对这个blog数据库有读写的权限,不能删除

image.png
来到MongoDB Compass 可视化工具登录root这个账号看一下
image.png

点击CONNECT

image.png
再来看一下mg2登录是啥样子
image.png
点击CONNECT
image.png
这就是分配账号来管理数据库,你这个mg2账号是不能对blog数据库进行删除的
image.png
为数据库创建使用账号啥意思呢

如下图所示,先切换到admin数据库,然后登录超级管理员,然后显示所有数据库,然后切换到blog数据库,然后显示blog数据库所有的账号信息,意思就是数据库分配账号给别人使用
在命令行创建

db.createUser({user:'mg3',pwd:'123456',roles:[{role:'readWrite',db:'blog'}]})

在命令行删除

db.dropUser('mg3')
image.png
在代码里
image.png
那我用root,用mg2可不可以呢?当然是不行的,因为它们只能连接到admin这个数据库
image.png
区别

为啥搞这么麻烦呢?之前没有创建root和mg2的时候MongoDB Compass直接就可以双击打开然后CONNECT,现在的话双击打开MongoDB Compass还要进行CONNECT验证,假设一下多人一起开发,为了防止别人删除数据库,那么你就很有必要为其创建普通账号来使用,这个普通账号只能使用这个blog数据库并且不可删除,然后项目里要连接到这个blog数据库,blog数据库必须分配账号来给项目链接使用。

上一篇 下一篇

猜你喜欢

热点阅读