• MongoDB学习总结(五) —— 安全认证


     作为数据库软件,我们要确保数据的安全,不是谁都可以访问的,所以mongodb也像其他的数据库软件一样可以采用用户验证的方法,

     mongodb 3.0之前的版本提供了addUser方法向不同的数据库添加可信任的用户mongodb 3.0开始之后的版本则改成了createUser方法,

     我这里用的最新的版本,所以需要使用createUser方法。

     

    下面我们重新建立一个mongodb数据库。同样以windows服务的形式开启。

     

     

    > 创建用户

     服务创建成功并且启动成功,我们开启客户端。使用createUser创建用户。

     因为createUser方法与之前addUser方法差别很大,创建用户需要添加不同的角色权限。

     这里注意点就是在admin数据库中添加用户是超级用户,也叫数据库管理员,它可以操作任何数据库。

     

     具体权限有以下:

     read:允许用户读取指定数据库

     readWrite:允许用户读写指定数据库

     dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

     userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

     clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

     readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

     readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

     userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

     dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

     root:只在admin数据库中可用。超级账号,超级权限。

     

    下面我们通过简单的实例介绍一下。

     

    上面我们创建了admin超级用户"super"以及product集合的用户"derek",并且具备读写及管理的权限。

     

    > 开启服务验证

    下面我们开启服务的用户验证模式,使用--auth参数。

     

     

     我们开启了服务验证模式,下面我们看下实例。

     

     我们看到没有验证之前,我们无法对product集合进行相应的操作,所以我们通过db.auth方法来进行验证,结果返回1表示验证通过,然后就可以对集合进行操作了。

     当我们切换到admin的超级用户时,我们可以对任意集合进行操作。

     

     以上是简单的建立了两个用户,上面介绍MongoDB 3.0开始之后建立用户包含的很多中角色role,根据概念很好理解,大家根据需求可以自己尝试下,我在这里就不一一列举了。

     

     另外查询有哪些用户,用db.system.users.find()命令。如果需要删除用户则使用db.system.users.remove({name,value})

     

     

     

  • 相关阅读:
    士兵杀死(两)(南阳116)
    Android 墙纸设置代码 详细说明
    Laravel nginx 伪静态规则
    STL源代码分析——STL算法merge合并算法
    第29周六
    第29周五
    第29周四
    第29周三
    2014第29周二
    第29周一
  • 原文地址:https://www.cnblogs.com/mejoy/p/6008447.html
Copyright © 2020-2023  润新知