MongoDB默认设置为无权限訪问限制
注:研究成果基于Windows平台
在部署mongodb成功后。进入控制台:
输入命令: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验证了。
输入username和password就能够验证了。
当退出窗体后。再次启动进入窗体后,通过use mydatabase来切换还有一个库后,查看库以下的表,发现又没有权限了。
可是。通过之前命令先进入admin库,然后验证username和password后再进入mydatabase库就没有问题。
这样我们就能够进入mydatabase库后
在加入用户 db.addUser(username,password);
这样就能够通过username和password来进入mydatabase库了。
相同在linux的环境下,须要在启动的服务后面加入auth的參数来启动权限訪问控制。