说明
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数据库有读写的权限,不能删除
来到MongoDB Compass 可视化工具登录root这个账号看一下
image.png
点击CONNECT
再来看一下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数据库必须分配账号来给项目链接使用。
网友评论