最近做一个关于mongoDB权限的功能,
在网上找了好久,各种命令,各种配置,各种修改,都没有解决哥的困惑.无奈,睡一觉后,灵光乍现,灵感来了.
下面就是我的最新发现,当然在各位看官的眼里,我的这个也是一坨狗屎....不过没关系,反正是解决了我的问题
首先在我的之前博客里说到了在win7下搭建mongoDB里面以这样的一段,看截图:
首先记住这个地方.等会再来看看它.
安装好了mongoDB后默认是没有任何权限控制的,在cmd窗口中敲命令:
1.show dbs.默认有两个数据库:admin和local.才疏学浅,local没用过,不知道什么用.
2.use admin
3.show collections.你会看到system.users.这张集合专门用来存储超级管理员的.
4.db.addUser('gys','123456').添加一个超级管理员.用户名是gys,密码是123456
5.use admin.
6.show collections.我们还是可以正常的查看数据库中的各种表.这个时候就需要我们上面提到的那个截图了
7.首先我们把服务关闭掉.可以在"计算机"==>管理==>服务==>mongoDB.右击停止服务.
8.把截图中的命令做一下修改:mongod.exe --dbpath=d:mongoDBdata -auth
9.mongo admin
10.use admin
11.show collections
这个时候提示没有权限了.
12.db.auth('gys','123456').显示1,表示成功验证了.0,表示验证失败.
13.show collections;看到了admin中的集合.
14.use testDB.假设存在这个数据库.
15.show collections.你会发现依然可以查看这个里面的数据,且需要权限验证.因为我们建立的是超级管理员.在有admin转向其他表的时候,是可以一路畅通无阻的.超管员的另一个功能还在于它可以给其他数据库添加权限用户.
比如现在我们就可以给这个数据库添加一个用户.
16.db.addUser('test','123456').
17.ctrl+c退出.直接登录指定数据库testDB,而不是默认的连接哪个数据库,或登录的admin数据库,然后转向其他数据库.
18.show collections.这个时候会提示没有权限.
19.db.auth("test",123456).显示1,登录成功
20.show collections.这样就可以查看testDB数据库中的集合了.
差不多了.就这么多了