mongoDB的权限管理

最近做一个关于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数据库中的集合了.

差不多了.就这么多了

原文地址:https://www.cnblogs.com/guoyansi19900907/p/4011253.html