MongoDB默认设置为无权限訪问限制
注:研究成果基于Windows平台

在部署mongodb成功后。进入控制台:
MongoDB下配置用户权限_linux
输入命令:mongod  use admin,你会发现该DB下包括了一个system.user表,呵呵。没错,这个表就等同于MsSql中的用户表。用来存放超级管理员的,那我们就往它里面加入一个超级管理员试试看
里我加入一个超级管理员用户,username为admin,password也为admin,即然我们加入了超级管理员,那咱们就来測试下,看看咱们再次连接MongoDB需不须要提示输入用户名、密码。我们先退出来

输入命令:mongod  use admin

输入命令:show collections。查看该库下全部的表,你会发现,MongoDB并没有提示你输入username、password。那就奇怪了,这是怎么回事呢?在文章最開始提到了。



MongoDB默认设置为无权限訪问限制,即然这样,那我们就先把它设置成为须要权限訪问限制,咱们再看看效果,怎么设置呢?

在注冊表中,找到MongoDB的节点。在它的ImgPath中,我们改动一下,增加 -auth,例如以下所看到的:mongod  

"D:\Program Files\mongodb\bin\mongod" -dbpath  e:\work\data\mongodb\db  -logpath  e:\work\data\mongodb\log -auth -service

注:进入系统注冊表(WIN+R-->regedit),找到[HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services-->MongoDB]在右边的健-值列表中打到 “ImagePath



改动完毕后再次进入控制台,发现须要password验证了。

MongoDB下配置用户权限_linux_02

输入username和password就能够验证了。
MongoDB下配置用户权限_sql_03

别急,还没有完。


当退出窗体后。再次启动进入窗体后,通过use mydatabase来切换还有一个库后,查看库以下的表,发现又没有权限了。
可是。通过之前命令先进入admin库,然后验证username和password后再进入mydatabase库就没有问题。

这样我们就能够进入mydatabase库后

在加入用户 db.addUser(username,password);

这样就能够通过username和password来进入mydatabase库了。



相同在linux的环境下,须要在启动的服务后面加入auth的參数来启动权限訪问控制。